## Importing Libraries
import pandas as pd ## To work with data
import numpy as np ## For faster matrix manipulations/operations
from matplotlib import pyplot as plt ## For Visualization
## Reading the first Dataset and taking a sneak peak into the data
df1 = pd.read_csv("data1.csv")
df1.head()
| ID;Marital status;Application mode;Application order;Course;Daytime/evening attendance;Previous qualification;Previous qualification (grade);Nationality;Mother's qualification;Father's qualification;Mother's occupation;Father's occupation;Admission grade;Displaced;Educational special needs;Debtor;Tuition fees up to date;Gender;Scholarship holder;Age at enrollment;International | |
|---|---|
| 0 | 2541;1;7;1;9147;1;3;120;1;1;39;4;7;120;0;0;0;1... |
| 1 | 2554;1;17;1;9991;0;1;160;1;34;34;0;0;161.8;1;0... |
| 2 | 2790;1;39;1;171;1;1;133.1;1;37;37;9;7;100;0;0;... |
| 3 | 2799;1;42;1;9500;1;1;150;1;19;1;9;3;110;1;0;0;... |
| 4 | 2883;2;39;1;9991;0;1;133.1;1;37;37;9;9;113.4;0... |
df1 = pd.read_csv("data1.csv", sep = ';')
df1.head()
| ID | Marital status | Application mode | Application order | Course | Daytime/evening attendance | Previous qualification | Previous qualification (grade) | Nationality | Mother's qualification | ... | Father's occupation | Admission grade | Displaced | Educational special needs | Debtor | Tuition fees up to date | Gender | Scholarship holder | Age at enrollment | International | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2541 | 1 | 7 | 1 | 9147 | 1 | 3 | 120.0 | 1 | 1 | ... | 7 | 120.0 | 0 | 0 | 0 | 1 | 0 | 0 | 333 | 0 |
| 1 | 2554 | 1 | 17 | 1 | 9991 | 0 | 1 | 160.0 | 1 | 34 | ... | 0 | 161.8 | 1 | 0 | 1 | 1 | 1 | 0 | 333 | 0 |
| 2 | 2790 | 1 | 39 | 1 | 171 | 1 | 1 | 133.1 | 1 | 37 | ... | 7 | 100.0 | 0 | 0 | 1 | 1 | 1 | 1 | 333 | 0 |
| 3 | 2799 | 1 | 42 | 1 | 9500 | 1 | 1 | 150.0 | 1 | 19 | ... | 3 | 110.0 | 1 | 0 | 0 | 1 | 1 | 1 | 333 | 0 |
| 4 | 2883 | 2 | 39 | 1 | 9991 | 0 | 1 | 133.1 | 1 | 37 | ... | 9 | 113.4 | 0 | 0 | 0 | 1 | 0 | 0 | 333 | 0 |
5 rows × 22 columns
pd.set_option('display.max_columns', None)
df1.head()
| ID | Marital status | Application mode | Application order | Course | Daytime/evening attendance | Previous qualification | Previous qualification (grade) | Nationality | Mother's qualification | Father's qualification | Mother's occupation | Father's occupation | Admission grade | Displaced | Educational special needs | Debtor | Tuition fees up to date | Gender | Scholarship holder | Age at enrollment | International | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2541 | 1 | 7 | 1 | 9147 | 1 | 3 | 120.0 | 1 | 1 | 39 | 4 | 7 | 120.0 | 0 | 0 | 0 | 1 | 0 | 0 | 333 | 0 |
| 1 | 2554 | 1 | 17 | 1 | 9991 | 0 | 1 | 160.0 | 1 | 34 | 34 | 0 | 0 | 161.8 | 1 | 0 | 1 | 1 | 1 | 0 | 333 | 0 |
| 2 | 2790 | 1 | 39 | 1 | 171 | 1 | 1 | 133.1 | 1 | 37 | 37 | 9 | 7 | 100.0 | 0 | 0 | 1 | 1 | 1 | 1 | 333 | 0 |
| 3 | 2799 | 1 | 42 | 1 | 9500 | 1 | 1 | 150.0 | 1 | 19 | 1 | 9 | 3 | 110.0 | 1 | 0 | 0 | 1 | 1 | 1 | 333 | 0 |
| 4 | 2883 | 2 | 39 | 1 | 9991 | 0 | 1 | 133.1 | 1 | 37 | 37 | 9 | 9 | 113.4 | 0 | 0 | 0 | 1 | 0 | 0 | 333 | 0 |
## Reading the second Dataset and taking a sneak peak into the data
df2 = pd.read_csv("data2.csv", sep = ';')
df2.head()
| ID | Curricular units 1st sem (credited) | Curricular units 1st sem (enrolled) | Curricular units 1st sem (evaluations) | Curricular units 1st sem (approved) | Curricular units 1st sem (grade) | Curricular units 1st sem (without evaluations) | Curricular units 2nd sem (credited) | Curricular units 2nd sem (enrolled) | Curricular units 2nd sem (evaluations) | Curricular units 2nd sem (approved) | Curricular units 2nd sem (grade) | Curricular units 2nd sem (without evaluations) | Unemployment rate | Inflation rate | GDP | Target | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 0 | 0 | 0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0.0 | 0 | 10.8 | 1.4 | 1.74 | Dropout |
| 1 | 3 | 0 | 6 | 0 | 0 | 0.0 | 0 | 0 | 6 | 0 | 0 | 0.0 | 0 | 10.8 | 1.4 | 1.74 | Dropout |
| 2 | 8 | 0 | 5 | 5 | 0 | 0.0 | 0 | 0 | 5 | 5 | 0 | 0.0 | 0 | 15.5 | 2.8 | -4.06 | Dropout |
| 3 | 10 | 0 | 6 | 9 | 5 | 11.4 | 0 | 0 | 6 | 14 | 2 | 13.5 | 0 | 8.9 | 1.4 | 3.51 | Dropout |
| 4 | 13 | 0 | 6 | 6 | 0 | 0.0 | 0 | 0 | 6 | 0 | 0 | 0.0 | 0 | 12.7 | 3.7 | -1.70 | Dropout |
## Reading the third Dataset and taking a sneak peak into the data
df3 = pd.read_csv("data3.csv", sep = ';')
df3.head()
| ID | Marital status | Application mode | Application order | Course | Daytime/evening attendance | Previous qualification | Previous qualification (grade) | Nationality | Mother's qualification | Father's qualification | Mother's occupation | Father's occupation | Admission grade | Displaced | Educational special needs | Debtor | Tuition fees up to date | Gender | Scholarship holder | Age at enrollment | International | Curricular units 1st sem (credited) | Curricular units 1st sem (enrolled) | Curricular units 1st sem (evaluations) | Curricular units 1st sem (approved) | Curricular units 1st sem (grade) | Curricular units 1st sem (without evaluations) | Curricular units 2nd sem (credited) | Curricular units 2nd sem (enrolled) | Curricular units 2nd sem (evaluations) | Curricular units 2nd sem (approved) | Curricular units 2nd sem (grade) | Curricular units 2nd sem (without evaluations) | Unemployment rate | Inflation rate | GDP | Target | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 239 | 1 | 1 | 1 | 9130 | 1 | 1 | 126.0 | 1 | 19 | 1 | 9 | 9 | 122.5 | 1 | 0 | 0 | 0.0 | 0 | 0 | 25 | NaN | 0 | 5 | 14 | 4 | 13.50 | 2 | 0 | 5 | 10 | 4 | 14.250000 | 0 | 9.4 | -0.8 | -3.12 | Dropout |
| 1 | 240 | 1 | 39 | 1 | 9085 | 1 | 19 | 133.1 | 1 | 19 | 19 | 9 | 7 | 140.0 | 0 | 0 | 1 | 0.0 | 0 | 0 | 24 | NaN | 2 | 6 | 11 | 3 | 11.75 | 0 | 1 | 6 | 14 | 3 | 10.333333 | 0 | 16.2 | 0.3 | -0.92 | Dropout |
| 2 | 244 | 1 | 39 | 1 | 9147 | 1 | 1 | 120.0 | 1 | 37 | 1 | 9 | 1 | 122.7 | 0 | 0 | 0 | 0.0 | 0 | 0 | 25 | NaN | 0 | 5 | 5 | 0 | 0.00 | 0 | 0 | 5 | 9 | 0 | 0.000000 | 0 | 10.8 | 1.4 | 1.74 | Dropout |
| 3 | 248 | 1 | 44 | 1 | 9003 | 1 | 39 | 130.0 | 1 | 37 | 37 | 9 | 10 | 130.0 | 0 | 0 | 1 | 0.0 | 0 | 0 | 29 | NaN | 0 | 6 | 13 | 3 | 12.75 | 0 | 0 | 6 | 8 | 3 | 11.333333 | 0 | 13.9 | -0.3 | 0.79 | Dropout |
| 4 | 256 | 2 | 39 | 1 | 9556 | 1 | 19 | 133.1 | 1 | 38 | 37 | 7 | 7 | 99.5 | 1 | 0 | 1 | 0.0 | 0 | 1 | 37 | NaN | 0 | 7 | 13 | 1 | 16.00 | 0 | 0 | 7 | 12 | 0 | 0.000000 | 0 | 8.9 | 1.4 | 3.51 | Dropout |
## df1 and df2 have different attributes of same students. We will join these two datasets on their IDs
df = pd.merge(df1, df2, on='ID')
## df3 consists data for students that are not present in df. We will concatinate these records in df and
## get one dataframe that will all the data available to us
## It is also a goo idea to take a look into the dataset's shape, i.e., no of records and no of attributes
df = pd.concat([df, df3])
df.shape
(4424, 38)
## Taking a look into the final dataset
df.head()
| ID | Marital status | Application mode | Application order | Course | Daytime/evening attendance | Previous qualification | Previous qualification (grade) | Nationality | Mother's qualification | Father's qualification | Mother's occupation | Father's occupation | Admission grade | Displaced | Educational special needs | Debtor | Tuition fees up to date | Gender | Scholarship holder | Age at enrollment | International | Curricular units 1st sem (credited) | Curricular units 1st sem (enrolled) | Curricular units 1st sem (evaluations) | Curricular units 1st sem (approved) | Curricular units 1st sem (grade) | Curricular units 1st sem (without evaluations) | Curricular units 2nd sem (credited) | Curricular units 2nd sem (enrolled) | Curricular units 2nd sem (evaluations) | Curricular units 2nd sem (approved) | Curricular units 2nd sem (grade) | Curricular units 2nd sem (without evaluations) | Unemployment rate | Inflation rate | GDP | Target | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2541 | 1 | 7 | 1 | 9147 | 1 | 3 | 120.0 | 1 | 1 | 39 | 4 | 7 | 120.0 | 0 | 0 | 0 | 1.0 | 0 | 0 | 333 | 0.0 | 2 | 5 | 9 | 2 | 14.000000 | 0 | 0 | 5 | 5 | 0 | 0.000000 | 0 | 12.4 | 0.5 | 1.79 | Drpout |
| 1 | 2554 | 1 | 17 | 1 | 9991 | 0 | 1 | 160.0 | 1 | 34 | 34 | 0 | 0 | 161.8 | 1 | 0 | 1 | 1.0 | 1 | 0 | 333 | 0.0 | 0 | 5 | 8 | 2 | 10.500000 | 0 | 0 | 5 | 5 | 0 | 0.000000 | 0 | 7.6 | 2.6 | 0.32 | Dropout |
| 2 | 2790 | 1 | 39 | 1 | 171 | 1 | 1 | 133.1 | 1 | 37 | 37 | 9 | 7 | 100.0 | 0 | 0 | 1 | 1.0 | 1 | 1 | 333 | 0.0 | 0 | 0 | 0 | 0 | 0.000000 | 0 | 0 | 0 | 0 | 0 | 0.000000 | 0 | 15.5 | 2.8 | -4.06 | Dropout |
| 3 | 2799 | 1 | 42 | 1 | 9500 | 1 | 1 | 150.0 | 1 | 19 | 1 | 9 | 3 | 110.0 | 1 | 0 | 0 | 1.0 | 1 | 1 | 333 | 0.0 | 6 | 14 | 20 | 14 | 13.072857 | 6 | 6 | 14 | 20 | 14 | 13.072857 | 6 | 9.4 | -0.8 | -3.12 | Graduate |
| 4 | 2883 | 2 | 39 | 1 | 9991 | 0 | 1 | 133.1 | 1 | 37 | 37 | 9 | 9 | 113.4 | 0 | 0 | 0 | 1.0 | 0 | 0 | 333 | 0.0 | 0 | 5 | 14 | 1 | 10.000000 | 0 | 0 | 5 | 13 | 2 | 12.000000 | 0 | 12.4 | 0.5 | 1.79 | Dropout |
## Looking at column datatypes can serve as a good starting point for data cleaning process
df.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 4424 entries, 0 to 999 Data columns (total 38 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ID 4424 non-null int64 1 Marital status 4424 non-null int64 2 Application mode 4424 non-null int64 3 Application order 4424 non-null int64 4 Course 4424 non-null int64 5 Daytime/evening attendance 4424 non-null object 6 Previous qualification 4424 non-null int64 7 Previous qualification (grade) 4424 non-null float64 8 Nationality 4424 non-null int64 9 Mother's qualification 4424 non-null int64 10 Father's qualification 4424 non-null object 11 Mother's occupation 4424 non-null int64 12 Father's occupation 4424 non-null int64 13 Admission grade 4424 non-null float64 14 Displaced 4424 non-null int64 15 Educational special needs 4424 non-null int64 16 Debtor 4424 non-null int64 17 Tuition fees up to date 3560 non-null float64 18 Gender 4424 non-null int64 19 Scholarship holder 4424 non-null int64 20 Age at enrollment 4424 non-null int64 21 International 3447 non-null float64 22 Curricular units 1st sem (credited) 4424 non-null int64 23 Curricular units 1st sem (enrolled) 4424 non-null int64 24 Curricular units 1st sem (evaluations) 4424 non-null int64 25 Curricular units 1st sem (approved) 4424 non-null int64 26 Curricular units 1st sem (grade) 4424 non-null float64 27 Curricular units 1st sem (without evaluations) 4424 non-null int64 28 Curricular units 2nd sem (credited) 4424 non-null int64 29 Curricular units 2nd sem (enrolled) 4424 non-null int64 30 Curricular units 2nd sem (evaluations) 4424 non-null int64 31 Curricular units 2nd sem (approved) 4424 non-null int64 32 Curricular units 2nd sem (grade) 4424 non-null float64 33 Curricular units 2nd sem (without evaluations) 4424 non-null int64 34 Unemployment rate 4424 non-null float64 35 Inflation rate 4424 non-null float64 36 GDP 4424 non-null float64 37 Target 4424 non-null object dtypes: float64(9), int64(26), object(3) memory usage: 1.3+ MB
for col in df.columns:
if df[col].dtype == 'object':
print(col, ':')
print(df[col].unique())
Daytime/evening attendance : ['1' '0' 'Y' 1 0] Father's qualification : ['39' '34' '37' '1' '38' '19' '2' '3' '35' '11' '25' '5' '26' '40' '41' '4' '22' '20' '29' '31' '36' '6' '12' '9' '27' '14' '10' '44' '33' '13' '30' ' ' '18' '43' 1 19 37 38 4 3 34 2 39 12 5 11 9 36 14 43 22 42 41 10 6 40 30] Target : ['Drpout' 'Dropout' 'Graduate' 'Enrolled' 'Dropot' 'Grduate' 'enroled']
## Solving data inconsistancy in 'Daytime/evening attendance' column
df.loc[:, 'Daytime/evening attendance'] = df['Daytime/evening attendance'].map({'1':1, 1:1, 0:0, '0':0, 'Y':1})
## Function to handle data inconsistancy in "father's qualification" column
def clean_father_qualification(x):
## For numerical data or text representation of the same
try:
return int(x)
## For whitespaces
except:
return None
df.loc[:, "Father's qualification"] = df.loc[:, "Father's qualification"].apply(clean_father_qualification)
## Handling data inconsistancy in "Target" column
target_column_cleaning_dict = {
'Drpout' : 'Dropout'
, 'Dropout' : 'Dropout'
, 'Graduate' : 'Graduate'
, 'Enrolled' : 'Enrolled'
, 'Dropot' : 'Dropout'
, 'Grduate' : 'Graduate'
, 'enroled' : 'Enrolled'
}
df.loc[:, "Target"] = df.loc[:, "Target"].map(target_column_cleaning_dict)
## Check for column which have skewed distribution
df.skew(numeric_only = True)
ID 0.000000 Marital status 4.399764 Application mode 0.393036 Application order 1.881050 Course -3.809135 Daytime/evening attendance -2.507238 Previous qualification 2.871207 Previous qualification (grade) 0.312867 Nationality 10.703998 Mother's qualification 0.001978 Father's qualification -0.298811 Mother's occupation 5.339227 Father's occupation 5.395173 Admission grade 0.530600 Displaced -0.194468 Educational special needs 9.154976 Debtor 2.434652 Tuition fees up to date -1.979866 Gender 0.621279 Scholarship holder 1.164871 Age at enrollment 12.428523 International 5.328606 Curricular units 1st sem (credited) 4.169049 Curricular units 1st sem (enrolled) 1.619041 Curricular units 1st sem (evaluations) 0.976637 Curricular units 1st sem (approved) 0.766262 Curricular units 1st sem (grade) -1.568146 Curricular units 1st sem (without evaluations) 8.207403 Curricular units 2nd sem (credited) 4.634820 Curricular units 2nd sem (enrolled) 0.788114 Curricular units 2nd sem (evaluations) 0.336497 Curricular units 2nd sem (approved) 0.306279 Curricular units 2nd sem (grade) -1.313650 Curricular units 2nd sem (without evaluations) 7.267701 Unemployment rate 0.212051 Inflation rate 0.252375 GDP -0.394068 dtype: float64
## List of columns with high skew
skew_cols = [
'Nationality'
, 'Educational special needs'
, 'Age at enrollment'
, 'Curricular units 1st sem (without evaluations)'
, 'Curricular units 2nd sem (without evaluations)'
]
## Checking value counts for high skew columns
for col in skew_cols:
print(col, df[col].value_counts().sort_index(), sep = '\n')
print('*'*80)
Nationality 1 4314 2 2 6 13 11 3 13 1 14 1 17 1 21 2 22 13 24 5 25 2 26 14 32 1 41 38 62 2 100 3 101 2 103 3 105 2 108 1 109 1 Name: Nationality, dtype: int64 ******************************************************************************** Educational special needs 0 4373 1 51 Name: Educational special needs, dtype: int64 ******************************************************************************** Age at enrollment 17 5 18 1036 19 911 20 599 21 322 22 171 23 108 24 131 25 93 26 94 27 91 28 83 29 66 30 49 31 55 32 61 33 28 34 60 35 49 36 35 37 42 38 29 39 38 40 23 41 31 42 13 43 25 44 19 45 22 46 12 47 18 48 11 49 13 50 16 51 7 52 4 53 7 54 7 55 5 57 2 58 3 59 3 60 2 61 1 62 1 70 1 222 3 333 17 444 2 Name: Age at enrollment, dtype: int64 ******************************************************************************** Curricular units 1st sem (without evaluations) 0 4130 1 153 2 79 3 23 4 15 5 5 6 6 7 6 8 4 10 1 12 2 Name: Curricular units 1st sem (without evaluations), dtype: int64 ******************************************************************************** Curricular units 2nd sem (without evaluations) 0 4142 1 140 2 48 3 35 4 21 5 17 6 8 7 5 8 6 12 2 Name: Curricular units 2nd sem (without evaluations), dtype: int64 ********************************************************************************
## Visuaization library for interactive graphs
## Feel free to zoom in and varify first observation
import plotly.express as px
fig = px.box(
df
, x = 'Age at enrollment'
, title = "Data Distribution of 'Age at enrollment' column"
)
fig.update_yaxes(title = "Number of records", tickangle=0)
fig.show()
print("Data Inconsistency records %:", (df[df['Age at enrollment']>100].shape[0]/df.shape[0])*100)
Data Inconsistency records %: 0.4972875226039783
## Only keeping records where age is < 100yrs
df = df[df['Age at enrollment']<100]
## Check number of null values in each column
df.isna().sum()
ID 0 Marital status 0 Application mode 0 Application order 0 Course 0 Daytime/evening attendance 0 Previous qualification 0 Previous qualification (grade) 0 Nationality 0 Mother's qualification 0 Father's qualification 1 Mother's occupation 0 Father's occupation 0 Admission grade 0 Displaced 0 Educational special needs 0 Debtor 0 Tuition fees up to date 864 Gender 0 Scholarship holder 0 Age at enrollment 0 International 977 Curricular units 1st sem (credited) 0 Curricular units 1st sem (enrolled) 0 Curricular units 1st sem (evaluations) 0 Curricular units 1st sem (approved) 0 Curricular units 1st sem (grade) 0 Curricular units 1st sem (without evaluations) 0 Curricular units 2nd sem (credited) 0 Curricular units 2nd sem (enrolled) 0 Curricular units 2nd sem (evaluations) 0 Curricular units 2nd sem (approved) 0 Curricular units 2nd sem (grade) 0 Curricular units 2nd sem (without evaluations) 0 Unemployment rate 0 Inflation rate 0 GDP 0 Target 0 dtype: int64
## Checking the relationship between 'Nationality'and 'International' column
print("Nationality\tInternational")
for group, data in df.groupby('Nationality'):
print(group, data['International'].unique(), sep = '\t\t')
Nationality International 1 [ 0. nan] 2 [1.] 6 [1.] 11 [1.] 13 [1.] 14 [1.] 17 [1.] 21 [1.] 22 [1.] 24 [1.] 25 [1.] 26 [1.] 32 [1.] 41 [1.] 62 [1.] 100 [1.] 101 [1.] 103 [1.] 105 [1.] 108 [1.] 109 [1.]
## Imputing International column based on Nationality
df.loc[:, 'International'] = df.apply(lambda row: 0 if row['Nationality'] == 1 else 1, axis = 1)
for col in df.columns[1:]:
print(col, "Tuition fees up to date", sep = '\t')
for group, data in df.groupby(col):
print(group, data['Tuition fees up to date'].unique(), sep = '\t\t')
print('*'*100)
Marital status Tuition fees up to date 1 [ 1. 0. nan] 2 [ 1. 0. nan] 3 [ 1. nan] 4 [ 0. 1. nan] 5 [ 1. 0. nan] 6 [1. 0.] **************************************************************************************************** Application mode Tuition fees up to date 1 [ 1. 0. nan] 2 [0. 1.] 5 [ 1. nan] 7 [ 0. 1. nan] 10 [ 1. 0. nan] 15 [ 1. 0. nan] 16 [ 1. nan] 17 [ 1. 0. nan] 18 [ 0. 1. nan] 26 [1.] 27 [1.] 39 [ 0. 1. nan] 42 [ 1. 0. nan] 43 [ 1. 0. nan] 44 [ 1. 0. nan] 51 [ 1. 0. nan] 53 [ 1. 0. nan] 57 [1.] **************************************************************************************************** Application order Tuition fees up to date 0 [1.] 1 [ 1. 0. nan] 2 [ 0. 1. nan] 3 [ 0. 1. nan] 4 [ 0. 1. nan] 5 [ 0. 1. nan] 6 [ 1. 0. nan] 9 [1.] **************************************************************************************************** Course Tuition fees up to date 33 [ 0. 1. nan] 171 [ 1. 0. nan] 8014 [ 0. 1. nan] 9003 [ 1. 0. nan] 9070 [ 1. 0. nan] 9085 [ 1. 0. nan] 9119 [ 1. 0. nan] 9130 [ 1. 0. nan] 9147 [ 0. 1. nan] 9238 [ 1. 0. nan] 9254 [ 1. 0. nan] 9500 [ 1. 0. nan] 9556 [ 0. 1. nan] 9670 [ 0. 1. nan] 9773 [ 1. 0. nan] 9853 [ 1. 0. nan] 9991 [ 1. 0. nan] **************************************************************************************************** Daytime/evening attendance Tuition fees up to date 0 [ 0. 1. nan] 1 [ 0. 1. nan] **************************************************************************************************** Previous qualification Tuition fees up to date 1 [ 1. 0. nan] 2 [ 0. 1. nan] 3 [ 0. 1. nan] 4 [ 1. nan] 5 [0.] 6 [ 1. nan] 9 [ 1. 0. nan] 10 [1. 0.] 12 [ 1. 0. nan] 14 [0.] 15 [ 0. nan] 19 [ 0. 1. nan] 38 [ 1. 0. nan] 39 [ 1. 0. nan] 40 [ 0. 1. nan] 42 [ 1. 0. nan] 43 [ 1. nan] **************************************************************************************************** Previous qualification (grade) Tuition fees up to date 95.0 [0.] 96.0 [nan] 97.0 [nan] 99.0 [ 0. nan] 100.0 [ 1. 0. nan] 101.0 [ 0. 1. nan] 102.0 [ 1. nan] 103.0 [1.] 105.0 [ 1. nan] 106.0 [ 1. 0. nan] 107.0 [ 1. nan] 108.0 [ 1. 0. nan] 109.0 [1. 0.] 110.0 [ 1. 0. nan] 111.0 [ 0. 1. nan] 112.0 [ 1. 0. nan] 113.0 [ 0. 1. nan] 114.0 [1. 0.] 115.0 [ 1. 0. nan] 116.0 [ 1. 0. nan] 117.0 [ 1. 0. nan] 117.4 [1.] 118.0 [ 1. 0. nan] 118.9 [1.] 119.0 [ 1. 0. nan] 119.1 [1.] 120.0 [ 0. 1. nan] 121.0 [ 1. 0. nan] 122.0 [ 1. 0. nan] 123.0 [ 0. 1. nan] 123.9 [1.] 124.0 [ 1. 0. nan] 124.4 [1.] 125.0 [ 1. 0. nan] 126.0 [ 1. 0. nan] 126.6 [1.] 127.0 [ 1. 0. nan] 128.0 [ 1. 0. nan] 129.0 [ 1. 0. nan] 130.0 [ 0. 1. nan] 131.0 [ 1. 0. nan] 132.0 [ 1. 0. nan] 133.0 [ 1. 0. nan] 133.1 [ 0. 1. nan] 133.8 [1.] 134.0 [ 1. 0. nan] 135.0 [ 0. 1. nan] 136.0 [ 1. 0. nan] 137.0 [ 1. 0. nan] 138.0 [ 0. 1. nan] 138.6 [nan] 138.7 [1.] 139.0 [ 1. 0. nan] 139.3 [1.] 140.0 [ 1. 0. nan] 140.8 [nan] 141.0 [ 1. 0. nan] 142.0 [ 1. 0. nan] 143.0 [ 0. 1. nan] 144.0 [ 1. 0. nan] 145.0 [ 0. 1. nan] 145.7 [1.] 146.0 [ 1. nan] 147.0 [ 0. 1. nan] 148.0 [ 1. 0. nan] 148.9 [1.] 149.0 [ 1. 0. nan] 150.0 [ 1. 0. nan] 151.0 [ 1. nan] 152.0 [ 1. 0. nan] 153.0 [ 1. nan] 154.0 [ 1. nan] 154.4 [0.] 155.0 [ 1. nan] 156.0 [ 1. 0. nan] 157.0 [ 1. nan] 158.0 [ 1. 0. nan] 159.0 [ 1. 0. nan] 160.0 [ 1. 0. nan] 161.0 [ 1. 0. nan] 162.0 [ 1. nan] 163.0 [1.] 163.3 [1.] 164.0 [ 1. nan] 165.0 [1.] 166.0 [nan] 167.0 [1.] 168.0 [ 0. 1. nan] 169.0 [1.] 170.0 [ 1. 0. nan] 172.0 [ 1. nan] 174.0 [1.] 175.0 [1.] 176.0 [1.] 177.0 [1.] 178.0 [ 1. nan] 180.0 [ 1. 0. nan] 182.0 [1.] 184.4 [nan] 188.0 [nan] 190.0 [1.] **************************************************************************************************** Nationality Tuition fees up to date 1 [ 0. 1. nan] 2 [1.] 6 [ 0. 1. nan] 11 [1.] 13 [1.] 14 [1.] 17 [0.] 21 [1.] 22 [ 0. 1. nan] 24 [ 1. 0. nan] 25 [1.] 26 [ 1. 0. nan] 32 [1.] 41 [ 1. 0. nan] 62 [1.] 100 [ 1. nan] 101 [ 1. nan] 103 [1.] 105 [1. 0.] 108 [1.] 109 [nan] **************************************************************************************************** Mother's qualification Tuition fees up to date 1 [ 1. 0. nan] 2 [ 1. 0. nan] 3 [ 0. 1. nan] 4 [ 0. 1. nan] 5 [ 1. 0. nan] 6 [1. 0.] 9 [ 1. 0. nan] 10 [ 1. nan] 11 [ 1. nan] 12 [ 0. 1. nan] 14 [1. 0.] 18 [0.] 19 [ 1. 0. nan] 22 [1.] 26 [1.] 27 [1.] 29 [ 1. nan] 30 [1. 0.] 34 [ 1. 0. nan] 35 [0. 1.] 36 [ 0. 1. nan] 37 [ 0. 1. nan] 38 [ 1. 0. nan] 39 [ 1. 0. nan] 40 [ 0. 1. nan] 41 [ 0. 1. nan] 42 [ 1. nan] 43 [ 1. nan] 44 [1.] **************************************************************************************************** Father's qualification Tuition fees up to date 1.0 [ 0. 1. nan] 2.0 [ 1. 0. nan] 3.0 [ 1. 0. nan] 4.0 [ 1. 0. nan] 5.0 [ 1. 0. nan] 6.0 [ 1. nan] 9.0 [ 1. nan] 10.0 [ 1. nan] 11.0 [ 0. 1. nan] 12.0 [ 1. 0. nan] 13.0 [1.] 14.0 [ 1. nan] 18.0 [0.] 19.0 [ 1. 0. nan] 20.0 [1.] 22.0 [ 1. 0. nan] 25.0 [1.] 26.0 [0. 1.] 27.0 [1.] 29.0 [0. 1.] 30.0 [ 1. nan] 31.0 [1.] 33.0 [0.] 34.0 [ 1. 0. nan] 35.0 [0. 1.] 36.0 [ 0. 1. nan] 37.0 [ 0. 1. nan] 38.0 [ 1. 0. nan] 39.0 [ 1. 0. nan] 40.0 [ 1. nan] 41.0 [ 0. nan] 42.0 [nan] 43.0 [ 1. nan] 44.0 [0.] **************************************************************************************************** Mother's occupation Tuition fees up to date 0 [ 1. 0. nan] 1 [ 1. 0. nan] 2 [ 1. 0. nan] 3 [ 0. 1. nan] 4 [ 0. 1. nan] 5 [ 1. 0. nan] 6 [ 1. 0. nan] 7 [ 1. 0. nan] 8 [ 1. 0. nan] 9 [ 0. 1. nan] 10 [ 1. nan] 90 [ 0. 1. nan] 99 [ 1. 0. nan] 122 [1.] 123 [ 1. nan] 125 [1.] 131 [1.] 132 [ 1. nan] 134 [1.] 141 [ 1. nan] 143 [1.] 144 [1.] 151 [1.] 152 [1.] 153 [1.] 171 [0.] 173 [nan] 175 [ 1. 0. nan] 191 [ 1. 0. nan] 192 [ 1. nan] 193 [1.] 194 [1.] **************************************************************************************************** Father's occupation Tuition fees up to date 0 [ 1. 0. nan] 1 [ 1. 0. nan] 2 [ 1. 0. nan] 3 [ 1. 0. nan] 4 [ 0. 1. nan] 5 [ 1. 0. nan] 6 [ 1. 0. nan] 7 [ 0. 1. nan] 8 [ 1. 0. nan] 9 [ 1. 0. nan] 10 [ 1. 0. nan] 90 [ 0. 1. nan] 99 [ 1. 0. nan] 101 [1.] 102 [1.] 103 [1.] 112 [1.] 114 [1.] 121 [nan] 122 [ 1. nan] 123 [1.] 124 [1.] 131 [1.] 132 [1.] 134 [1.] 135 [1.] 141 [1.] 143 [1.] 144 [ 1. nan] 151 [1.] 152 [1.] 153 [1.] 154 [1.] 161 [1.] 163 [1. 0.] 171 [ 0. 1. nan] 172 [ 1. nan] 174 [1.] 175 [ 1. nan] 181 [1.] 182 [1.] 183 [ 1. nan] 192 [ 1. nan] 193 [0. 1.] 194 [1.] 195 [nan] **************************************************************************************************** Admission grade Tuition fees up to date 95.0 [ 0. 1. nan] 95.1 [0.] 95.5 [0. 1.] 95.8 [0.] 96.0 [ 0. 1. nan] 96.1 [1.] 96.7 [1.] 97.0 [ 0. 1. nan] 97.2 [1.] 97.4 [0.] 97.5 [nan] 98.0 [ 1. nan] 98.1 [nan] 98.5 [1.] 98.6 [1. 0.] 98.7 [nan] 98.9 [ 1. nan] 99.0 [ 1. nan] 99.3 [1.] 99.5 [0.] 99.6 [1.] 99.7 [0.] 100.0 [ 1. 0. nan] 100.1 [ 0. nan] 100.2 [0.] 100.5 [ 1. nan] 100.6 [ 1. nan] 100.7 [nan] 100.8 [1.] 100.9 [1.] 101.0 [ 1. 0. nan] 101.3 [ 1. nan] 101.5 [0. 1.] 101.6 [1.] 101.7 [1.] 101.8 [0. 1.] 102.0 [1.] 102.2 [1.] 102.4 [1.] 102.5 [ 0. 1. nan] 102.6 [nan] 102.8 [1.] 103.0 [ 1. 0. nan] 103.4 [ 1. nan] 103.5 [ 0. 1. nan] 103.6 [1.] 103.7 [1.] 103.8 [1.] 104.0 [ 1. 0. nan] 104.1 [0. 1.] 104.2 [1.] 104.5 [ 1. nan] 104.6 [0.] 104.7 [nan] 104.8 [1. 0.] 105.0 [ 1. 0. nan] 105.1 [1.] 105.2 [ 1. nan] 105.3 [0. 1.] 105.4 [1.] 105.5 [1. 0.] 105.6 [nan] 105.7 [1.] 105.8 [1.] 105.9 [ 1. nan] 106.0 [ 1. 0. nan] 106.1 [1. 0.] 106.2 [nan] 106.3 [0.] 106.4 [ 1. nan] 106.5 [1. 0.] 106.6 [ 1. nan] 106.7 [1.] 106.8 [ 1. nan] 107.0 [ 0. 1. nan] 107.1 [ 1. nan] 107.2 [nan] 107.3 [1.] 107.4 [0. 1.] 107.5 [ 1. 0. nan] 107.6 [nan] 107.7 [0. 1.] 107.8 [1. 0.] 108.0 [1.] 108.2 [1.] 108.3 [ 0. 1. nan] 108.4 [1.] 108.5 [1.] 108.6 [0.] 108.7 [ 1. 0. nan] 108.8 [1.] 109.0 [ 1. 0. nan] 109.1 [ 0. 1. nan] 109.3 [ 1. 0. nan] 109.4 [1.] 109.5 [1.] 109.6 [1.] 109.7 [1.] 109.8 [0. 1.] 109.9 [0.] 110.0 [ 0. 1. nan] 110.1 [ 1. nan] 110.2 [ 1. nan] 110.3 [ 1. 0. nan] 110.4 [1. 0.] 110.5 [ 1. nan] 110.6 [1.] 110.7 [ 1. nan] 110.8 [ 1. nan] 111.0 [ 0. 1. nan] 111.1 [ 1. 0. nan] 111.3 [ 1. 0. nan] 111.4 [1. 0.] 111.5 [ 0. 1. nan] 111.6 [ 1. nan] 111.7 [1. 0.] 111.8 [ 1. nan] 111.9 [ 1. 0. nan] 112.0 [ 1. 0. nan] 112.1 [1. 0.] 112.2 [ 1. nan] 112.3 [1. 0.] 112.4 [1.] 112.5 [ 1. nan] 112.6 [ 1. nan] 112.7 [1.] 112.8 [1.] 112.9 [ 1. 0. nan] 113.0 [1. 0.] 113.1 [0. 1.] 113.2 [ 1. 0. nan] 113.3 [ 1. nan] 113.4 [ 1. nan] 113.5 [ 1. nan] 113.6 [ 1. nan] 113.7 [ 1. 0. nan] 113.8 [0. 1.] 113.9 [ 1. 0. nan] 114.0 [ 1. 0. nan] 114.2 [ 1. nan] 114.3 [ 1. 0. nan] 114.4 [ 1. nan] 114.5 [ 1. nan] 114.6 [ 1. 0. nan] 114.7 [ 1. nan] 114.8 [ 1. 0. nan] 114.9 [ 1. 0. nan] 115.0 [ 1. 0. nan] 115.1 [ 0. 1. nan] 115.2 [ 1. 0. nan] 115.3 [1.] 115.4 [ 1. nan] 115.5 [ 1. 0. nan] 115.6 [0. 1.] 115.7 [0. 1.] 115.8 [ 0. 1. nan] 115.9 [ 1. nan] 116.0 [ 1. 0. nan] 116.1 [ 0. 1. nan] 116.2 [1. 0.] 116.3 [ 0. 1. nan] 116.4 [0. 1.] 116.5 [ 0. 1. nan] 116.6 [ 1. 0. nan] 116.7 [1.] 116.8 [ 1. 0. nan] 116.9 [ 1. 0. nan] 117.0 [ 1. 0. nan] 117.1 [ 1. nan] 117.2 [ 1. nan] 117.3 [1.] 117.4 [ 1. nan] 117.5 [ 1. 0. nan] 117.6 [1.] 117.7 [ 1. nan] 117.8 [ 0. 1. nan] 117.9 [ 0. 1. nan] 118.0 [ 1. 0. nan] 118.1 [ 1. 0. nan] 118.2 [ 1. nan] 118.3 [ 1. 0. nan] 118.4 [ 1. 0. nan] 118.5 [ 1. nan] 118.6 [ 1. nan] 118.7 [ 1. nan] 118.8 [ 1. 0. nan] 118.9 [ 1. nan] 119.0 [ 1. 0. nan] 119.1 [ 1. 0. nan] 119.2 [1.] 119.3 [ 1. nan] 119.4 [ 0. 1. nan] 119.5 [1. 0.] 119.6 [ 1. 0. nan] 119.7 [ 1. nan] 119.8 [ 1. nan] 119.9 [1. 0.] 120.0 [ 1. 0. nan] 120.1 [ 0. 1. nan] 120.2 [ 1. nan] 120.3 [ 1. 0. nan] 120.4 [ 0. 1. nan] 120.5 [ 1. 0. nan] 120.6 [ 1. 0. nan] 120.7 [ 1. 0. nan] 120.8 [ 1. nan] 120.9 [1.] 121.0 [ 1. 0. nan] 121.1 [1.] 121.2 [ 1. nan] 121.3 [ 1. nan] 121.4 [ 1. 0. nan] 121.5 [ 1. 0. nan] 121.6 [ 1. nan] 121.7 [ 1. 0. nan] 121.8 [0. 1.] 121.9 [ 0. 1. nan] 122.0 [ 1. 0. nan] 122.1 [ 1. 0. nan] 122.2 [1. 0.] 122.3 [ 1. 0. nan] 122.4 [ 1. nan] 122.5 [ 1. 0. nan] 122.6 [ 1. 0. nan] 122.7 [ 1. 0. nan] 122.8 [ 0. 1. nan] 122.9 [1. 0.] 123.0 [ 1. 0. nan] 123.1 [1. 0.] 123.2 [ 1. nan] 123.3 [ 1. 0. nan] 123.4 [ 1. nan] 123.5 [1. 0.] 123.6 [ 1. nan] 123.7 [ 1. 0. nan] 123.8 [ 0. 1. nan] 123.9 [ 1. nan] 124.0 [ 1. 0. nan] 124.1 [ 1. nan] 124.2 [ 1. 0. nan] 124.3 [ 1. 0. nan] 124.4 [ 1. nan] 124.5 [ 0. 1. nan] 124.6 [ 1. 0. nan] 124.7 [ 1. nan] 124.8 [ 1. 0. nan] 124.9 [ 1. nan] 125.0 [ 1. 0. nan] 125.1 [ 0. 1. nan] 125.2 [ 1. nan] 125.3 [ 1. nan] 125.4 [ 0. 1. nan] 125.5 [ 1. 0. nan] 125.6 [ 1. nan] 125.7 [ 0. 1. nan] 125.8 [0. 1.] 125.9 [ 1. nan] 126.0 [ 1. 0. nan] 126.1 [ 1. 0. nan] 126.2 [ 1. 0. nan] 126.3 [ 1. 0. nan] 126.4 [ 1. nan] 126.5 [ 1. 0. nan] 126.6 [ 1. 0. nan] 126.7 [ 1. 0. nan] 126.8 [ 1. 0. nan] 126.9 [ 1. nan] 127.0 [ 1. 0. nan] 127.1 [ 1. 0. nan] 127.2 [ 1. 0. nan] 127.3 [ 1. 0. nan] 127.4 [ 0. 1. nan] 127.5 [ 0. 1. nan] 127.6 [ 1. nan] 127.7 [ 1. 0. nan] 127.8 [ 1. 0. nan] 127.9 [ 1. 0. nan] 128.0 [ 1. 0. nan] 128.1 [ 1. nan] 128.2 [ 1. 0. nan] 128.3 [ 1. 0. nan] 128.4 [ 1. 0. nan] 128.5 [ 1. 0. nan] 128.6 [1.] 128.7 [1.] 128.8 [ 1. nan] 128.9 [ 1. nan] 129.0 [ 1. 0. nan] 129.1 [ 1. nan] 129.2 [ 1. 0. nan] 129.3 [ 1. nan] 129.4 [ 1. 0. nan] 129.5 [ 1. 0. nan] 129.6 [1.] 129.7 [ 1. nan] 129.8 [ 1. 0. nan] 129.9 [ 1. nan] 130.0 [ 0. 1. nan] 130.1 [0. 1.] 130.2 [ 1. nan] 130.3 [ 1. nan] 130.4 [ 1. nan] 130.5 [ 1. nan] 130.6 [1. 0.] 130.7 [ 1. nan] 130.8 [ 1. 0. nan] 130.9 [ 0. 1. nan] 131.0 [ 1. 0. nan] 131.1 [ 1. nan] 131.2 [ 1. nan] 131.3 [ 1. nan] 131.4 [ 1. 0. nan] 131.5 [ 1. nan] 131.6 [ 1. nan] 131.7 [ 1. 0. nan] 131.8 [ 1. 0. nan] 131.9 [ 1. nan] 132.0 [ 0. 1. nan] 132.1 [ 1. nan] 132.2 [1.] 132.3 [ 1. nan] 132.4 [ 1. 0. nan] 132.5 [ 1. 0. nan] 132.6 [ 1. nan] 132.7 [ 1. nan] 132.8 [ 0. 1. nan] 132.9 [ 1. 0. nan] 133.0 [ 1. nan] 133.1 [ 1. nan] 133.2 [ 0. 1. nan] 133.3 [ 0. 1. nan] 133.4 [ 1. 0. nan] 133.5 [ 1. 0. nan] 133.6 [0. 1.] 133.7 [ 1. nan] 133.8 [ 1. nan] 133.9 [ 1. 0. nan] 134.0 [ 1. nan] 134.1 [ 0. 1. nan] 134.2 [ 1. nan] 134.3 [1.] 134.4 [ 1. 0. nan] 134.5 [ 1. nan] 134.6 [ 1. nan] 134.7 [1. 0.] 134.8 [ 1. nan] 134.9 [1.] 135.0 [ 1. nan] 135.1 [ 1. nan] 135.2 [1.] 135.3 [1.] 135.4 [1.] 135.5 [1. 0.] 135.6 [ 1. nan] 135.7 [1.] 135.8 [ 1. nan] 135.9 [ 1. nan] 136.0 [ 1. 0. nan] 136.1 [ 1. 0. nan] 136.2 [ 1. nan] 136.3 [ 1. 0. nan] 136.4 [1.] 136.5 [ 1. nan] 136.6 [ 1. nan] 136.7 [ 1. nan] 136.8 [ 1. nan] 136.9 [ 1. nan] 137.0 [ 1. nan] 137.1 [ 1. nan] 137.2 [0. 1.] 137.3 [ 1. nan] 137.4 [1.] 137.5 [ 1. 0. nan] 137.6 [1.] 137.7 [0.] 137.8 [ 1. nan] 137.9 [0.] 138.0 [ 1. 0. nan] 138.1 [ 1. 0. nan] 138.2 [0.] 138.3 [ 1. 0. nan] 138.4 [ 1. 0. nan] 138.5 [1.] 138.6 [ 1. nan] 138.7 [ 1. nan] 138.8 [ 1. 0. nan] 138.9 [ 1. nan] 139.0 [ 1. nan] 139.1 [1.] 139.2 [1.] 139.3 [nan] 139.4 [1. 0.] 139.5 [1.] 139.6 [0.] 139.7 [ 1. nan] 139.8 [ 1. nan] 139.9 [1.] 140.0 [ 1. 0. nan] 140.1 [1.] 140.2 [ 1. nan] 140.3 [1.] 140.4 [ 1. nan] 140.5 [ 0. 1. nan] 140.7 [1.] 140.8 [ 1. nan] 140.9 [ 1. nan] 141.0 [ 1. 0. nan] 141.1 [1.] 141.2 [ 1. nan] 141.3 [ 0. 1. nan] 141.4 [ 1. 0. nan] 141.5 [ 1. 0. nan] 141.6 [1.] 141.7 [ 1. 0. nan] 141.8 [1.] 142.0 [1.] 142.2 [ 1. nan] 142.3 [ 1. nan] 142.4 [1.] 142.5 [ 1. 0. nan] 142.6 [1.] 142.7 [1.] 142.8 [ 1. 0. nan] 143.0 [ 1. nan] 143.1 [1.] 143.2 [1.] 143.3 [ 0. 1. nan] 143.4 [1. 0.] 143.5 [1.] 143.6 [ 1. nan] 143.7 [1.] 143.8 [ 1. nan] 143.9 [1.] 144.0 [1.] 144.1 [0. 1.] 144.2 [1.] 144.3 [1.] 144.4 [1.] 144.5 [1.] 144.6 [0. 1.] 144.7 [ 1. nan] 144.8 [1.] 144.9 [1. 0.] 145.0 [ 1. nan] 145.2 [ 1. nan] 145.3 [ 1. nan] 145.4 [nan] 145.6 [1.] 145.7 [1.] 145.8 [nan] 145.9 [1.] 146.0 [1.] 146.1 [ 1. nan] 146.2 [ 1. nan] 146.3 [nan] 146.4 [ 1. nan] 146.5 [1. 0.] 146.6 [1.] 146.7 [ 1. nan] 146.8 [1.] 146.9 [1.] 147.0 [ 1. nan] 147.2 [1.] 147.3 [1.] 147.5 [1.] 147.6 [ 1. nan] 147.7 [ 1. nan] 147.8 [ 1. nan] 147.9 [1.] 148.0 [ 1. 0. nan] 148.2 [1.] 148.3 [1.] 148.4 [ 1. nan] 148.5 [ 1. nan] 148.6 [1.] 148.7 [1. 0.] 148.8 [ 1. nan] 148.9 [1.] 149.0 [0. 1.] 149.2 [nan] 149.3 [ 1. nan] 149.4 [0.] 149.5 [1. 0.] 149.7 [1.] 149.8 [ 1. nan] 149.9 [ 1. 0. nan] 150.0 [ 0. 1. nan] 150.1 [nan] 150.2 [ 0. 1. nan] 150.3 [ 1. nan] 150.4 [nan] 150.5 [ 1. nan] 150.6 [nan] 150.8 [1.] 150.9 [1.] 151.0 [ 1. 0. nan] 151.1 [1.] 151.2 [1.] 151.3 [1.] 151.4 [1. 0.] 151.5 [0.] 151.6 [1.] 151.7 [1.] 151.9 [nan] 152.0 [ 1. 0. nan] 152.1 [1.] 152.3 [1.] 152.4 [ 1. nan] 152.5 [nan] 152.7 [0.] 152.8 [ 1. nan] 152.9 [1.] 153.0 [ 0. 1. nan] 153.1 [1.] 153.2 [nan] 153.5 [1. 0.] 153.6 [1.] 153.7 [1.] 153.8 [1.] 153.9 [ 0. nan] 154.0 [ 1. nan] 154.1 [1.] 154.3 [1.] 154.4 [ 1. 0. nan] 154.5 [1.] 154.6 [0. 1.] 154.7 [1.] 154.8 [1.] 154.9 [0.] 155.0 [ 1. nan] 155.1 [ 0. 1. nan] 155.2 [nan] 155.3 [ 1. nan] 155.5 [ 0. 1. nan] 155.6 [nan] 155.7 [ 1. nan] 155.8 [1.] 156.0 [ 0. nan] 156.1 [ 0. nan] 156.2 [1.] 156.3 [nan] 156.4 [nan] 156.5 [ 1. nan] 156.8 [1.] 156.9 [1.] 157.0 [1. 0.] 157.4 [1.] 157.5 [1.] 157.7 [nan] 157.9 [1.] 158.0 [0.] 158.1 [nan] 158.3 [1.] 158.7 [nan] 159.0 [1.] 159.1 [1.] 159.3 [1.] 159.7 [1.] 159.9 [1.] 160.0 [ 0. 1. nan] 160.1 [1.] 160.4 [0.] 160.5 [1.] 160.6 [nan] 161.0 [ 1. nan] 161.1 [nan] 161.2 [ 1. nan] 161.5 [nan] 161.9 [ 1. nan] 162.0 [1.] 162.1 [1.] 162.2 [0.] 162.3 [1.] 162.4 [0.] 162.5 [1.] 162.9 [1.] 163.0 [1.] 163.1 [0.] 163.3 [1.] 163.4 [1.] 163.5 [0.] 163.6 [1.] 163.7 [nan] 164.3 [nan] 164.9 [1.] 165.2 [1.] 165.7 [nan] 165.8 [ 1. nan] 166.0 [1.] 166.6 [0.] 166.9 [nan] 167.1 [1.] 167.3 [1.] 168.0 [nan] 168.2 [1.] 168.5 [1.] 168.6 [1.] 169.2 [0.] 169.7 [1.] 170.0 [ 0. 1. nan] 171.2 [1.] 172.0 [nan] 173.3 [1.] 174.7 [1.] 175.6 [1.] 176.0 [1.] 176.7 [1.] 178.0 [nan] 178.3 [nan] 179.6 [0.] 180.0 [ 1. nan] 180.4 [1.] 183.5 [1.] 184.0 [1.] 184.4 [nan] 190.0 [ 1. nan] **************************************************************************************************** Displaced Tuition fees up to date 0 [ 0. 1. nan] 1 [ 1. 0. nan] **************************************************************************************************** Educational special needs Tuition fees up to date 0 [ 0. 1. nan] 1 [ 1. 0. nan] **************************************************************************************************** Debtor Tuition fees up to date 0 [ 1. 0. nan] 1 [ 0. 1. nan] **************************************************************************************************** Tuition fees up to date Tuition fees up to date 0.0 [0.] 1.0 [1.] **************************************************************************************************** Gender Tuition fees up to date 0 [ 1. 0. nan] 1 [ 0. 1. nan] **************************************************************************************************** Scholarship holder Tuition fees up to date 0 [ 0. 1. nan] 1 [ 1. 0. nan] **************************************************************************************************** Age at enrollment Tuition fees up to date 17 [1.] 18 [ 1. 0. nan] 19 [ 0. 1. nan] 20 [ 1. 0. nan] 21 [ 1. 0. nan] 22 [ 0. 1. nan] 23 [ 1. 0. nan] 24 [ 1. 0. nan] 25 [ 1. 0. nan] 26 [ 1. 0. nan] 27 [ 1. 0. nan] 28 [ 1. 0. nan] 29 [ 1. 0. nan] 30 [ 1. 0. nan] 31 [ 1. 0. nan] 32 [ 0. 1. nan] 33 [ 1. 0. nan] 34 [ 1. 0. nan] 35 [ 1. 0. nan] 36 [ 1. 0. nan] 37 [ 0. 1. nan] 38 [ 0. 1. nan] 39 [ 1. 0. nan] 40 [ 0. 1. nan] 41 [ 0. 1. nan] 42 [ 1. 0. nan] 43 [ 1. 0. nan] 44 [ 1. 0. nan] 45 [ 1. 0. nan] 46 [ 1. 0. nan] 47 [ 1. 0. nan] 48 [ 1. 0. nan] 49 [ 1. 0. nan] 50 [ 1. 0. nan] 51 [1. 0.] 52 [ 1. nan] 53 [ 0. 1. nan] 54 [ 1. 0. nan] 55 [ 1. 0. nan] 57 [1. 0.] 58 [1.] 59 [ 0. nan] 60 [1.] 61 [1.] 62 [1.] 70 [0.] **************************************************************************************************** International Tuition fees up to date 0 [ 0. 1. nan] 1 [ 0. 1. nan] **************************************************************************************************** Curricular units 1st sem (credited) Tuition fees up to date 0 [ 0. 1. nan] 1 [ 1. 0. nan] 2 [ 1. 0. nan] 3 [ 1. 0. nan] 4 [ 1. 0. nan] 5 [ 1. 0. nan] 6 [ 1. 0. nan] 7 [ 1. 0. nan] 8 [ 1. 0. nan] 9 [ 1. 0. nan] 10 [ 0. 1. nan] 11 [ 0. 1. nan] 12 [0. 1.] 13 [ 1. 0. nan] 14 [ 1. 0. nan] 15 [ 1. nan] 16 [ 1. nan] 17 [1.] 18 [ 1. 0. nan] 19 [1.] 20 [1.] **************************************************************************************************** Curricular units 1st sem (enrolled) Tuition fees up to date 0 [ 1. 0. nan] 1 [1. 0.] 2 [ 1. nan] 3 [ 0. 1. nan] 4 [ 1. 0. nan] 5 [ 0. 1. nan] 6 [ 1. 0. nan] 7 [ 0. 1. nan] 8 [ 1. 0. nan] 9 [ 1. 0. nan] 10 [ 1. 0. nan] 11 [ 1. 0. nan] 12 [ 1. 0. nan] 13 [ 1. 0. nan] 14 [ 1. nan] 15 [ 0. 1. nan] 16 [ 1. nan] 17 [ 1. 0. nan] 18 [ 1. nan] 19 [1.] 21 [1. 0.] 23 [ 1. nan] 26 [1.] **************************************************************************************************** Curricular units 1st sem (evaluations) Tuition fees up to date 0 [ 1. 0. nan] 1 [1. 0.] 2 [ 1. nan] 3 [0. 1.] 4 [ 1. 0. nan] 5 [ 0. 1. nan] 6 [ 1. 0. nan] 7 [ 1. 0. nan] 8 [ 0. 1. nan] 9 [ 1. 0. nan] 10 [ 1. 0. nan] 11 [ 0. 1. nan] 12 [ 1. 0. nan] 13 [ 1. 0. nan] 14 [ 1. 0. nan] 15 [ 1. 0. nan] 16 [ 1. 0. nan] 17 [ 0. 1. nan] 18 [ 1. 0. nan] 19 [ 1. 0. nan] 20 [ 1. nan] 21 [ 1. nan] 22 [ 0. 1. nan] 23 [ 1. 0. nan] 24 [ 1. 0. nan] 25 [1.] 26 [ 1. 0. nan] 27 [ 1. nan] 28 [1.] 29 [1.] 31 [0.] 32 [nan] 33 [1.] 36 [nan] 45 [1.] **************************************************************************************************** Curricular units 1st sem (approved) Tuition fees up to date 0 [ 0. 1. nan] 1 [ 1. 0. nan] 2 [ 1. 0. nan] 3 [ 0. 1. nan] 4 [ 1. 0. nan] 5 [ 1. 0. nan] 6 [ 1. 0. nan] 7 [ 1. 0. nan] 8 [ 1. 0. nan] 9 [ 1. 0. nan] 10 [ 1. nan] 11 [ 1. 0. nan] 12 [ 0. 1. nan] 13 [ 1. 0. nan] 14 [ 1. 0. nan] 15 [ 1. nan] 16 [ 1. nan] 17 [ 1. nan] 18 [ 1. nan] 19 [1.] 20 [ 1. nan] 21 [1. 0.] 26 [1.] **************************************************************************************************** Curricular units 1st sem (grade) Tuition fees up to date 0.0 [ 0. 1. nan] 9.8 [1.] 10.0 [ 1. 0. nan] 10.16666667 [nan] 10.2 [ 1. nan] 10.21428571 [0.] 10.25 [ 1. 0. nan] 10.28571429 [1.] 10.33333333 [ 1. 0. nan] 10.36842105 [1.] 10.375 [1.] 10.4 [ 1. 0. nan] 10.46666667 [nan] 10.5 [ 1. 0. nan] 10.57142857 [ 1. nan] 10.6 [ 0. 1. nan] 10.64285714 [1.] 10.66666667 [ 1. 0. nan] 10.69230769 [nan] 10.71428571 [1.] 10.74444444 [1.] 10.75 [ 1. nan] 10.76923077 [1.] 10.8 [ 1. nan] 10.81818182 [1.] 10.83333333 [ 1. 0. nan] 10.85714286 [1.] 10.875 [1.] 10.88888889 [1. 0.] 10.9 [1.] 10.92307692 [1.] 10.92857143 [1.] 10.98333333 [1.] 10.98571429 [1.] 11.0 [ 1. 0. nan] 11.07142857 [1.] 11.125 [1.] 11.14285714 [ 1. nan] 11.15 [1.] 11.15555556 [1.] 11.16666667 [ 1. nan] 11.2 [ 1. 0. nan] 11.23076923 [1.] 11.25 [ 1. 0. nan] 11.27272727 [nan] 11.28571429 [ 1. 0. nan] 11.29444444 [nan] 11.3 [nan] 11.325 [1.] 11.32857143 [0.] 11.33333333 [ 1. 0. nan] 11.35714286 [ 1. nan] 11.375 [1.] 11.4 [ 0. 1. nan] 11.41666667 [1.] 11.42105263 [1.] 11.42857143 [ 1. 0. nan] 11.4375 [1.] 11.44444444 [nan] 11.45454545 [ 1. nan] 11.46153846 [1.] 11.5 [ 1. 0. nan] 11.53846154 [nan] 11.54545455 [1.] 11.55555556 [1. 0.] 11.57142857 [ 1. nan] 11.575 [1.] 11.5875 [nan] 11.6 [ 1. 0. nan] 11.605 [1.] 11.61111111 [1.] 11.61428571 [nan] 11.61538462 [1.] 11.61666667 [1.] 11.625 [ 1. nan] 11.63571429 [1.] 11.64285714 [1.] 11.65833333 [1.] 11.66666667 [ 1. 0. nan] 11.67777778 [1.] 11.67857143 [1.] 11.68 [1.] 11.68333333 [1.] 11.6875 [1.] 11.69 [1.] 11.70571429 [1.] 11.71428571 [ 1. 0. nan] 11.71666667 [1.] 11.72142857 [1.] 11.72727273 [ 0. nan] 11.73333333 [1.] 11.75 [ 0. 1. nan] 11.75714286 [nan] 11.76923077 [1.] 11.7725 [1.] 11.77777778 [1.] 11.78571429 [1.] 11.8 [ 1. 0. nan] 11.81428571 [nan] 11.81666667 [nan] 11.82 [1.] 11.82857143 [1.] 11.832 [0.] 11.83333333 [ 1. 0. nan] 11.8375 [1.] 11.85 [1.] 11.85714286 [ 1. nan] 11.875 [ 1. nan] 11.88888889 [0. 1.] 11.89473684 [1.] 11.9 [ 1. nan] 11.90909091 [1.] 11.91666667 [ 0. 1. nan] 11.92307692 [0.] 11.94 [1.] 11.95 [1.] 11.96 [0.] 11.9625 [1.] 11.96666667 [1.] 11.97142857 [1.] 11.9725 [1.] 11.975 [ 1. nan] 11.98 [ 1. nan] 11.98333333 [nan] 11.98857143 [1.] 11.99444444 [1.] 12.0 [ 1. 0. nan] 12.002 [1.] 12.03571429 [nan] 12.04 [1.] 12.04142857 [1.] 12.04285714 [1.] 12.07142857 [1.] 12.07692308 [1.] 12.08285714 [nan] 12.08428571 [1.] 12.09090909 [1.] 12.1 [ 1. nan] 12.11428571 [1.] 12.12142857 [nan] 12.125 [ 1. nan] 12.13571429 [1.] 12.1375 [nan] 12.14285714 [ 0. 1. nan] 12.15384615 [ 1. nan] 12.16 [ 1. 0. nan] 12.1625 [1.] 12.16666667 [ 1. 0. nan] 12.18 [0.] 12.18333333 [ 1. nan] 12.19230769 [1.] 12.2 [ 1. 0. nan] 12.21052632 [1.] 12.21428571 [1.] 12.21714286 [1.] 12.22222222 [0. 1.] 12.22857143 [1.] 12.24285714 [1.] 12.25 [ 0. 1. nan] 12.26666667 [1.] 12.27142857 [1.] 12.28571429 [ 1. 0. nan] 12.288 [nan] 12.3 [nan] 12.32 [1.] 12.32428571 [nan] 12.32777778 [1.] 12.32857143 [1.] 12.33333333 [ 1. 0. nan] 12.34 [1.] 12.34285714 [1.] 12.35 [1.] 12.35571429 [1.] 12.35714286 [1.] 12.36 [0.] 12.36363636 [0.] 12.36571429 [1.] 12.375 [ 1. nan] 12.38571429 [1.] 12.39666667 [1.] 12.4 [ 1. 0. nan] 12.40142857 [ 1. nan] 12.4125 [1.] 12.41285714 [1.] 12.41428571 [1.] 12.415 [1.] 12.42857143 [ 1. nan] 12.44428571 [nan] 12.44444444 [1.] 12.45 [ 1. nan] 12.45428571 [1.] 12.45454545 [1.] 12.45714286 [ 1. nan] 12.46 [1.] 12.46153846 [1.] 12.46428571 [1.] 12.47142857 [ 1. nan] 12.47619048 [1.] 12.48375 [1.] 12.48571429 [1.] 12.49166667 [1.] 12.49285714 [nan] 12.49571429 [1.] 12.5 [ 1. 0. nan] 12.50625 [1.] 12.5075 [1.] 12.5125 [1.] 12.51333333 [1.] 12.51428571 [ 1. nan] 12.51666667 [1.] 12.52608696 [1.] 12.52857143 [nan] 12.5375 [1.] 12.54545455 [ 0. nan] 12.54571429 [1.] 12.55375 [1.] 12.55555556 [ 1. nan] 12.56 [0.] 12.5625 [1.] 12.565 [1.] 12.57142857 [1.] 12.57894737 [1.] 12.58 [1.] 12.58333333 [1.] 12.58571429 [nan] 12.58823529 [nan] 12.59125 [1.] 12.6 [ 1. 0. nan] 12.60625 [1.] 12.61 [1.] 12.61428571 [1.] 12.61904762 [1.] 12.62 [0. 1.] 12.625 [1.] 12.62857143 [1.] 12.63333333 [1.] 12.63636364 [ 1. nan] 12.64285714 [nan] 12.64833333 [1.] 12.65 [ 1. nan] 12.65714286 [1.] 12.66571429 [1.] 12.66666667 [ 1. 0. nan] 12.67 [nan] 12.675 [1.] 12.68421053 [1.] 12.68571429 [1.] 12.6875 [nan] 12.69230769 [1.] 12.69428571 [nan] 12.7 [ 1. nan] 12.71428571 [1.] 12.71857143 [1.] 12.725 [1.] 12.72727273 [1. 0.] 12.72857143 [1.] 12.73333333 [1.] 12.74 [nan] 12.74285714 [nan] 12.74428571 [1.] 12.75 [ 1. 0. nan] 12.75714286 [1.] 12.75833333 [0.] 12.76428571 [1.] 12.76571429 [nan] 12.76666667 [ 1. nan] 12.77125 [1.] 12.77142857 [1.] 12.77777778 [1.] 12.78333333 [1.] 12.78571429 [1.] 12.79142857 [1.] 12.8 [ 1. 0. nan] 12.80833333 [1.] 12.81666667 [1.] 12.81818182 [1.] 12.82857143 [ 1. nan] 12.82875 [1.] 12.83333333 [ 1. nan] 12.83571429 [nan] 12.8375 [1.] 12.84142857 [1.] 12.84615385 [1.] 12.84714286 [1.] 12.85 [1.] 12.85555556 [1.] 12.85714286 [ 1. nan] 12.858 [1.] 12.86 [ 0. 1. nan] 12.875 [1.] 12.87857143 [1.] 12.88625 [1.] 12.8875 [ 1. nan] 12.88888889 [1.] 12.9 [ 1. nan] 12.90142857 [nan] 12.90857143 [1.] 12.90909091 [nan] 12.91 [1.] 12.91428571 [nan] 12.91666667 [ 1. nan] 12.92875 [nan] 12.93333333 [1.] 12.93375 [1.] 12.93875 [1.] 12.94 [1. 0.] 12.94428571 [1.] 12.95 [ 1. nan] 12.96666667 [1.] 12.97166667 [1.] 12.98125 [1.] 12.98285714 [1.] 12.99333333 [1.] 13.0 [ 1. 0. nan] 13.01125 [1.] 13.01666667 [1.] 13.02428571 [1.] 13.025 [1.] 13.03 [1.] 13.03333333 [nan] 13.04 [1.] 13.04444444 [1.] 13.045 [1.] 13.04666667 [1.] 13.05 [1.] 13.05375 [nan] 13.05555556 [1.] 13.05857143 [nan] 13.05875 [1.] 13.05882353 [nan] 13.06666667 [1.] 13.07142857 [1.] 13.07375 [1.] 13.075 [ 1. nan] 13.07571429 [nan] 13.08 [1.] 13.08166667 [1.] 13.08714286 [1.] 13.09090909 [1.] 13.09428571 [1.] 13.1 [ 1. nan] 13.105 [1.] 13.10571429 [1.] 13.11 [1.] 13.11111111 [1.] 13.11625 [1.] 13.11666667 [1.] 13.11714286 [nan] 13.125 [ 0. 1. nan] 13.126 [1.] 13.128 [1.] 13.13333333 [1.] 13.135 [1.] 13.14285714 [ 1. nan] 13.15 [1.] 13.15142857 [nan] 13.15384615 [1.] 13.15428571 [1.] 13.16666667 [ 1. 0. nan] 13.175 [1.] 13.17571429 [1.] 13.17647059 [1.] 13.18181818 [1.] 13.18333333 [1.] 13.188 [1.] 13.19 [1.] 13.19857143 [1.] 13.2 [ 1. 0. nan] 13.21428571 [1.] 13.22 [nan] 13.22222222 [1.] 13.2325 [1.] 13.2375 [1.] 13.24285714 [1.] 13.24875 [nan] 13.25 [ 1. 0. nan] 13.25375 [nan] 13.2575 [1.] 13.25857143 [1.] 13.26 [1.] 13.26666667 [1.] 13.27142857 [1.] 13.27166667 [1.] 13.27272727 [1.] 13.27625 [1.] 13.28571429 [ 1. 0. nan] 13.29 [1.] 13.29166667 [1.] 13.29666667 [1.] 13.29714286 [1.] 13.3 [ 1. nan] 13.30625 [1.] 13.30769231 [nan] 13.30857143 [1.] 13.31 [nan] 13.3125 [1.] 13.31428571 [1.] 13.32714286 [0.] 13.32857143 [1.] 13.33142857 [1.] 13.33333333 [ 0. 1. nan] 13.336 [1.] 13.34 [ 1. nan] 13.3425 [nan] 13.34285714 [nan] 13.345 [1.] 13.3475 [1.] 13.35 [1.] 13.3625 [1.] 13.3675 [1.] 13.37 [1.] 13.37142857 [1.] 13.375 [1. 0.] 13.38125 [nan] 13.38142857 [nan] 13.38333333 [1.] 13.38461538 [0.] 13.385 [nan] 13.38571429 [1.] 13.3875 [1.] 13.38888889 [nan] 13.39 [1.] 13.39125 [nan] 13.39166667 [nan] 13.39473684 [1.] 13.398 [1.] 13.4 [ 1. 0. nan] 13.40375 [1.] 13.41142857 [1.] 13.41428571 [nan] 13.41625 [1.] 13.41666667 [1.] 13.4173913 [1.] 13.42222222 [1.] 13.42375 [1.] 13.4275 [nan] 13.42857143 [ 1. 0. nan] 13.43333333 [nan] 13.435 [nan] 13.44 [1.] 13.44285714 [ 1. nan] 13.44444444 [ 1. nan] 13.45 [1.] 13.45454545 [1.] 13.45714286 [1.] 13.46 [1.] 13.46285714 [ 0. nan] 13.46428571 [1.] 13.46666667 [1.] 13.46714286 [1.] 13.46875 [1.] 13.47 [1.] 13.47142857 [1.] 13.48333333 [1.] 13.48571429 [1.] 13.48714286 [nan] 13.49285714 [nan] 13.49666667 [1.] 13.5 [ 1. 0. nan] 13.50714286 [1.] 13.51285714 [nan] 13.51428571 [1.] 13.51666667 [1.] 13.52857143 [nan] 13.53333333 [1.] 13.54285714 [1.] 13.54545455 [nan] 13.54833333 [1.] 13.55 [1.] 13.55555556 [1.] 13.55714286 [ 1. nan] 13.56875 [1.] 13.57142857 [ 1. 0. nan] 13.57625 [1.] 13.58 [1.] 13.58333333 [nan] 13.58571429 [1.] 13.59833333 [1.] 13.6 [ 1. 0. nan] 13.605 [1.] 13.6125 [1.] 13.61428571 [ 1. nan] 13.61538462 [nan] 13.625 [ 1. nan] 13.62857143 [1.] 13.63 [1.] 13.6375 [nan] 13.64285714 [1.] 13.66666667 [ 1. 0. nan] 13.67 [1.] 13.67142857 [nan] 13.67714286 [1.] 13.68142857 [1.] 13.68333333 [1.] 13.68571429 [nan] 13.6875 [1.] 13.69428571 [nan] 13.7 [ 0. 1. nan] 13.71428571 [ 1. nan] 13.72571429 [nan] 13.72727273 [1.] 13.73125 [1.] 13.73166667 [1.] 13.73684211 [1.] 13.74166667 [nan] 13.74285714 [1.] 13.74625 [1.] 13.75 [ 1. 0. nan] 13.755 [1.] 13.76111111 [1.] 13.76125 [nan] 13.76375 [1.] 13.76666667 [1.] 13.76923077 [1.] 13.77571429 [1.] 13.77857143 [1.] 13.78 [1.] 13.78125 [1.] 13.78571429 [ 1. nan] 13.79666667 [1.] 13.79714286 [nan] 13.79857143 [1.] 13.8 [ 1. nan] 13.80142857 [1.] 13.805 [1.] 13.81375 [1.] 13.81428571 [nan] 13.81714286 [1.] 13.81818182 [ 1. nan] 13.82857143 [1.] 13.83333333 [ 1. 0. nan] 13.84285714 [1.] 13.84615385 [ 1. nan] 13.85 [nan] 13.85714286 [ 1. nan] 13.86166667 [1.] 13.86333333 [1.] 13.86714286 [1.] 13.875 [1.] 13.87571429 [1.] 13.87714286 [1.] 13.88125 [1.] 13.88428571 [nan] 13.8875 [nan] 13.89428571 [1.] 13.9 [1.] 13.91428571 [1.] 13.91666667 [nan] 13.91857143 [1.] 13.92307692 [1.] 13.92571429 [1.] 13.928 [1.] 13.93714286 [1.] 13.9475 [1.] 13.95714286 [1.] 13.95833333 [1.] 13.96666667 [ 1. nan] 13.97142857 [1.] 13.97666667 [1.] 13.98 [nan] 13.98333333 [1.] 13.99571429 [1.] 14.0 [ 1. 0. nan] 14.00375 [nan] 14.01428571 [1.] 14.01666667 [1.] 14.03333333 [nan] 14.035 [1.] 14.05 [1.] 14.05714286 [1.] 14.06 [1.] 14.06666667 [1.] 14.07125 [1.] 14.07142857 [1.] 14.07222222 [1.] 14.08571429 [nan] 14.09333333 [1.] 14.1 [1.] 14.10571429 [1.] 14.11 [1.] 14.11111111 [1.] 14.11428571 [nan] 14.11571429 [1.] 14.125 [ 1. nan] 14.12571429 [1.] 14.13125 [nan] 14.13714286 [1.] 14.14125 [1.] 14.14285714 [ 1. 0. nan] 14.14571429 [1.] 14.15 [1.] 14.15375 [1.] 14.15384615 [nan] 14.16666667 [ 1. nan] 14.175 [nan] 14.2 [ 1. 0. nan] 14.20857143 [1.] 14.21428571 [1.] 14.22222222 [nan] 14.23285714 [1.] 14.23333333 [1.] 14.24 [1.] 14.24444444 [1.] 14.25 [ 1. nan] 14.2525 [1.] 14.25714286 [1.] 14.26666667 [1.] 14.26875 [1.] 14.27272727 [nan] 14.28333333 [1.] 14.28571429 [1.] 14.3 [ 1. nan] 14.30714286 [1.] 14.30769231 [1.] 14.31285714 [1.] 14.31428571 [ 1. nan] 14.31666667 [1.] 14.32857143 [1.] 14.33333333 [ 1. 0. nan] 14.34125 [1.] 14.35 [1.] 14.35555556 [1.] 14.35714286 [1.] 14.36 [nan] 14.368 [1.] 14.37 [1.] 14.375 [1.] 14.3775 [1.] 14.38461538 [1.] 14.4 [ 1. 0. nan] 14.4025 [1.] 14.40285714 [nan] 14.4125 [nan] 14.41428571 [1.] 14.42428571 [1.] 14.42857143 [ 1. 0. nan] 14.44142857 [1.] 14.44444444 [1.] 14.445 [1.] 14.45 [1.] 14.45454545 [1.] 14.455 [1.] 14.46 [1.] 14.48571429 [1.] 14.5 [ 1. 0. nan] 14.50125 [1.] 14.51428571 [nan] 14.52857143 [1.] 14.53571429 [1.] 14.53714286 [1.] 14.53846154 [1.] 14.54 [1.] 14.54285714 [nan] 14.56571429 [1.] 14.56666667 [1.] 14.57142857 [1.] 14.57285714 [1.] 14.575 [1.] 14.58333333 [nan] 14.59444444 [1.] 14.6 [1. 0.] 14.60428571 [1.] 14.61538462 [1.] 14.61666667 [1.] 14.625 [1.] 14.63157895 [1.] 14.63636364 [1.] 14.65 [1.] 14.65285714 [1.] 14.65428571 [nan] 14.6625 [1.] 14.66666667 [ 0. 1. nan] 14.668 [1.] 14.68285714 [1.] 14.69285714 [1.] 14.69625 [1.] 14.7 [ 1. nan] 14.70625 [nan] 14.71111111 [1.] 14.71428571 [ 1. nan] 14.71666667 [1.] 14.72571429 [nan] 14.72727273 [ 1. nan] 14.72857143 [1.] 14.73142857 [nan] 14.75 [ 0. 1. nan] 14.75714286 [ 1. nan] 14.77777778 [nan] 14.7875 [1.] 14.8 [1.] 14.80571429 [1.] 14.82857143 [nan] 14.83333333 [ 1. 0. nan] 14.83857143 [1.] 14.84285714 [1.] 14.85 [ 1. nan] 14.85714286 [ 1. nan] 14.86857143 [1.] 14.875 [1.] 14.88875 [1.] 14.88888889 [nan] 14.90142857 [1.] 14.9125 [1.] 14.91875 [1.] 14.93333333 [1.] 14.935 [1.] 14.93571429 [nan] 14.95 [1.] 14.96285714 [1.] 14.98333333 [1.] 14.98571429 [1.] 14.99285714 [1.] 15.0 [ 1. 0. nan] 15.01428571 [1.] 15.02857143 [1.] 15.05263158 [1.] 15.07 [1.] 15.07571429 [1.] 15.07777778 [1.] 15.08333333 [nan] 15.09090909 [1. 0.] 15.10142857 [1.] 15.11 [1.] 15.11428571 [1.] 15.115 [1.] 15.11666667 [nan] 15.125 [ 1. 0. nan] 15.13571429 [nan] 15.14285714 [1.] 15.145 [nan] 15.15555556 [1.] 15.16666667 [ 1. nan] 15.2 [ 1. 0. nan] 15.22857143 [1.] 15.23076923 [nan] 15.25 [1. 0.] 15.28571429 [ 1. nan] 15.3 [1.] 15.30769231 [ 1. nan] 15.33333333 [ 1. nan] 15.375 [1.] 15.4 [ 1. nan] 15.42857143 [0. 1.] 15.43333333 [1.] 15.44444444 [1.] 15.46875 [1.] 15.5 [1.] 15.53846154 [1.] 15.57 [nan] 15.57142857 [ 1. nan] 15.625 [nan] 15.63375 [nan] 15.65714286 [1.] 15.66 [nan] 15.66666667 [ 1. nan] 15.67571429 [1.] 15.69230769 [1.] 15.7 [1.] 15.71428571 [ 1. nan] 15.75 [1.] 15.79857143 [1.] 15.8 [ 1. nan] 15.83333333 [1.] 15.85714286 [1.] 15.88571429 [nan] 15.88888889 [1.] 15.94285714 [1.] 15.95714286 [1.] 16.0 [ 1. 0. nan] 16.11111111 [1.] 16.13142857 [1.] 16.14285714 [ 1. nan] 16.15384615 [nan] 16.16666667 [0. 1.] 16.2 [ 1. nan] 16.33333333 [0. 1.] 16.4 [ 1. nan] 16.42857143 [1.] 16.46153846 [1.] 16.5 [1. 0.] 16.57142857 [nan] 16.71428571 [1.] 16.83333333 [1.] 16.85714286 [1.] 16.88571429 [1.] 16.9 [1.] 17.0 [1.] 17.00555556 [1.] 17.11111111 [1.] 17.125 [1.] 17.33333333 [1.] 18.0 [ 1. nan] 18.875 [nan] **************************************************************************************************** Curricular units 1st sem (without evaluations) Tuition fees up to date 0 [ 0. 1. nan] 1 [ 1. 0. nan] 2 [ 1. 0. nan] 3 [ 1. 0. nan] 4 [ 1. 0. nan] 5 [1.] 6 [0. 1.] 7 [ 1. 0. nan] 8 [ 1. 0. nan] 10 [1.] 12 [1.] **************************************************************************************************** Curricular units 2nd sem (credited) Tuition fees up to date 0 [ 0. 1. nan] 1 [ 1. 0. nan] 2 [ 1. 0. nan] 3 [ 1. 0. nan] 4 [ 1. 0. nan] 5 [ 1. 0. nan] 6 [ 1. 0. nan] 7 [ 1. nan] 8 [ 0. 1. nan] 9 [ 0. 1. nan] 10 [ 1. 0. nan] 11 [ 1. nan] 12 [ 1. 0. nan] 13 [ 1. 0. nan] 14 [ 1. nan] 15 [ 1. nan] 16 [ 1. nan] 18 [ 1. nan] 19 [1.] **************************************************************************************************** Curricular units 2nd sem (enrolled) Tuition fees up to date 0 [ 1. 0. nan] 1 [1.] 2 [ 0. 1. nan] 3 [ 1. nan] 4 [ 0. 1. nan] 5 [ 0. 1. nan] 6 [ 1. 0. nan] 7 [ 1. 0. nan] 8 [ 0. 1. nan] 9 [ 1. 0. nan] 10 [ 1. 0. nan] 11 [ 1. 0. nan] 12 [ 1. 0. nan] 13 [ 1. 0. nan] 14 [ 0. 1. nan] 15 [ 1. nan] 16 [0.] 17 [ 1. nan] 18 [1.] 19 [1.] 21 [1.] 23 [ 1. nan] **************************************************************************************************** Curricular units 2nd sem (evaluations) Tuition fees up to date 0 [ 1. 0. nan] 1 [1.] 2 [ 0. nan] 3 [ 1. nan] 4 [ 0. 1. nan] 5 [ 0. 1. nan] 6 [ 1. 0. nan] 7 [ 1. 0. nan] 8 [ 0. 1. nan] 9 [ 0. 1. nan] 10 [ 1. 0. nan] 11 [ 1. 0. nan] 12 [ 1. 0. nan] 13 [ 1. 0. nan] 14 [ 1. 0. nan] 15 [ 1. 0. nan] 16 [ 0. 1. nan] 17 [ 1. 0. nan] 18 [ 1. 0. nan] 19 [ 1. 0. nan] 20 [ 1. 0. nan] 21 [1. 0.] 22 [ 1. nan] 23 [ 1. nan] 24 [1. 0.] 25 [1.] 26 [1.] 27 [1.] 28 [nan] 33 [1.] **************************************************************************************************** Curricular units 2nd sem (approved) Tuition fees up to date 0 [ 0. 1. nan] 1 [ 0. 1. nan] 2 [ 1. 0. nan] 3 [ 1. 0. nan] 4 [ 1. 0. nan] 5 [ 1. 0. nan] 6 [ 1. 0. nan] 7 [ 1. 0. nan] 8 [ 0. 1. nan] 9 [ 0. 1. nan] 10 [ 1. 0. nan] 11 [ 1. 0. nan] 12 [ 1. 0. nan] 13 [ 1. 0. nan] 14 [ 1. nan] 16 [1.] 17 [ 1. nan] 18 [1.] 19 [1.] 20 [ 1. nan] **************************************************************************************************** Curricular units 2nd sem (grade) Tuition fees up to date 0.0 [ 0. 1. nan] 10.0 [ 0. 1. nan] 10.16666667 [1. 0.] 10.2 [1.] 10.25 [ 1. 0. nan] 10.33333333 [ 1. 0. nan] 10.375 [1.] 10.4 [ 1. nan] 10.42857143 [1. 0.] 10.44444444 [ 1. nan] 10.5 [ 1. 0. nan] 10.57142857 [ 1. 0. nan] 10.6 [ 1. 0. nan] 10.66666667 [ 0. 1. nan] 10.71428571 [1.] 10.72727273 [1.] 10.75 [ 1. 0. nan] 10.8 [ 0. 1. nan] 10.83333333 [ 1. 0. nan] 10.84 [nan] 10.85714286 [ 1. 0. nan] 10.868 [1.] 10.92307692 [nan] 10.97857143 [nan] 10.98333333 [1.] 11.0 [ 1. 0. nan] 11.07692308 [1.] 11.08333333 [0.] 11.1 [ 1. nan] 11.11111111 [nan] 11.125 [1.] 11.14285714 [ 1. nan] 11.16666667 [ 1. nan] 11.18181818 [ 1. nan] 11.2 [ 0. 1. nan] 11.22222222 [1.] 11.225 [1.] 11.24285714 [1.] 11.25 [ 1. 0. nan] 11.2625 [1.] 11.28571429 [1.] 11.3 [nan] 11.325 [1.] 11.32857143 [0.] 11.33333333 [ 1. 0. nan] 11.34 [0.] 11.34714286 [nan] 11.35714286 [nan] 11.36363636 [1. 0.] 11.375 [1.] 11.38461538 [1. 0.] 11.4 [ 1. 0. nan] 11.425 [1.] 11.42857143 [ 0. 1. nan] 11.4375 [1.] 11.44444444 [ 1. nan] 11.45454545 [1.] 11.46153846 [1.] 11.4625 [nan] 11.5 [ 1. 0. nan] 11.50625 [nan] 11.54545455 [1.] 11.55 [1.] 11.55555556 [1.] 11.56666667 [0.] 11.57142857 [ 1. nan] 11.575 [0.] 11.58 [0.] 11.58333333 [1.] 11.6 [ 1. 0. nan] 11.61538462 [1.] 11.625 [ 1. nan] 11.63571429 [1.] 11.63636364 [1.] 11.64285714 [1.] 11.65 [nan] 11.66666667 [ 1. 0. nan] 11.675 [1.] 11.68 [1.] 11.68333333 [1.] 11.68571429 [1.] 11.69 [1.] 11.7 [1.] 11.70571429 [1.] 11.70833333 [1.] 11.7125 [nan] 11.71428571 [ 1. nan] 11.72142857 [1.] 11.725 [nan] 11.736 [1.] 11.7375 [1.] 11.75 [ 1. 0. nan] 11.77142857 [1.] 11.77777778 [ 1. nan] 11.78333333 [1.] 11.78571429 [1.] 11.8 [ 1. 0. nan] 11.80833333 [1.] 11.8125 [0.] 11.82 [1.] 11.832 [0.] 11.83333333 [ 1. 0. nan] 11.8375 [1.] 11.85625 [1.] 11.85714286 [ 1. nan] 11.875 [ 1. nan] 11.88888889 [1.] 11.9 [1.] 11.90909091 [ 1. nan] 11.92857143 [1.] 11.93333333 [1.] 11.95 [1.] 11.95625 [1.] 11.9625 [1.] 11.96666667 [1.] 11.97142857 [1.] 11.98 [1.] 11.98857143 [1.] 12.0 [ 1. 0. nan] 12.002 [1.] 12.04142857 [1.] 12.04166667 [1.] 12.04285714 [1.] 12.05 [1.] 12.05555556 [1.] 12.06375 [1.] 12.06666667 [1.] 12.07142857 [1.] 12.08285714 [nan] 12.08333333 [ 1. nan] 12.08428571 [1.] 12.09090909 [1.] 12.10526316 [1.] 12.11428571 [1.] 12.11666667 [1.] 12.11764706 [1.] 12.11875 [1.] 12.125 [1.] 12.12857143 [nan] 12.14 [nan] 12.14285714 [ 1. nan] 12.15 [1.] 12.15714286 [1.] 12.16 [ 1. nan] 12.16666667 [ 1. 0. nan] 12.17647059 [nan] 12.18181818 [ 1. nan] 12.18333333 [nan] 12.18888889 [1.] 12.19230769 [1.] 12.19285714 [nan] 12.2 [ 1. nan] 12.20555556 [1.] 12.21052632 [1.] 12.21428571 [1.] 12.22142857 [1.] 12.22222222 [0. 1.] 12.22857143 [1.] 12.23333333 [1.] 12.2375 [1.] 12.24285714 [1.] 12.25 [ 0. 1. nan] 12.27272727 [ 1. nan] 12.28125 [nan] 12.28571429 [ 1. 0. nan] 12.288 [nan] 12.3 [ 1. nan] 12.30769231 [ 1. nan] 12.32 [1.] 12.32142857 [1.] 12.32428571 [nan] 12.32857143 [1.] 12.33 [1.] 12.33125 [1.] 12.33333333 [ 1. 0. nan] 12.34285714 [1.] 12.35571429 [1.] 12.35714286 [1.] 12.36111111 [nan] 12.36363636 [nan] 12.36571429 [1.] 12.375 [ 1. nan] 12.38 [1.] 12.38461538 [1.] 12.38571429 [1.] 12.4 [ 0. 1. nan] 12.40142857 [nan] 12.4125 [1.] 12.41285714 [1.] 12.41428571 [1.] 12.415 [1.] 12.41666667 [ 1. nan] 12.42 [1.] 12.42857143 [ 1. nan] 12.43142857 [1.] 12.44555556 [1.] 12.45 [nan] 12.45428571 [1.] 12.45714286 [nan] 12.46 [1.] 12.46153846 [1.] 12.46428571 [1.] 12.47142857 [1.] 12.48125 [1.] 12.48375 [1.] 12.48571429 [1.] 12.4875 [nan] 12.49166667 [1.] 12.5 [ 1. 0. nan] 12.5075 [1.] 12.5125 [1.] 12.51428571 [1.] 12.51666667 [1.] 12.525 [1.] 12.52608696 [1.] 12.54545455 [1.] 12.54571429 [1.] 12.55 [1.] 12.55375 [1.] 12.55555556 [1.] 12.56 [0.] 12.5625 [1.] 12.57142857 [ 1. nan] 12.575 [1.] 12.58333333 [1.] 12.6 [ 1. 0. nan] 12.61 [1.] 12.6125 [1.] 12.61428571 [1.] 12.61666667 [1.] 12.62142857 [1.] 12.625 [ 1. nan] 12.62857143 [1.] 12.63333333 [1.] 12.63636364 [1.] 12.6375 [1.] 12.64285714 [nan] 12.65125 [1.] 12.65714286 [1.] 12.66571429 [1.] 12.66666667 [ 1. 0. nan] 12.66875 [1.] 12.67142857 [1.] 12.675 [1.] 12.68571429 [1.] 12.6875 [1.] 12.68888889 [nan] 12.69428571 [nan] 12.7 [1. 0.] 12.71428571 [ 1. nan] 12.72727273 [1.] 12.72857143 [1.] 12.73333333 [1.] 12.74285714 [nan] 12.74428571 [1.] 12.75 [ 1. 0. nan] 12.75714286 [1.] 12.75833333 [0.] 12.76111111 [1.] 12.76428571 [1.] 12.76666667 [ 1. nan] 12.77125 [1.] 12.77142857 [1.] 12.77777778 [ 1. nan] 12.78571429 [1.] 12.78947368 [1.] 12.79142857 [1.] 12.8 [ 1. nan] 12.80555556 [1.] 12.81428571 [1.] 12.81818182 [ 1. nan] 12.82 [1.] 12.82375 [1.] 12.82571429 [1.] 12.82857143 [nan] 12.82875 [1.] 12.83333333 [ 1. 0. nan] 12.84142857 [1.] 12.84285714 [1.] 12.84615385 [ 1. nan] 12.85714286 [ 1. nan] 12.858 [1.] 12.86 [ 1. nan] 12.875 [0. 1.] 12.88 [0.] 12.88625 [1.] 12.8875 [ 1. nan] 12.88888889 [1.] 12.89285714 [1.] 12.9 [1.] 12.90857143 [1.] 12.90909091 [1.] 12.91 [1.] 12.91111111 [nan] 12.9125 [1.] 12.91428571 [nan] 12.91666667 [ 1. nan] 12.92307692 [1.] 12.93375 [1.] 12.93625 [1.] 12.9375 [1.] 12.93875 [1.] 12.94285714 [1.] 12.94375 [1.] 12.94428571 [1.] 12.95 [1.] 12.96666667 [1.] 12.96818182 [1.] 12.98125 [1.] 13.0 [ 1. 0. nan] 13.01125 [1.] 13.01666667 [1.] 13.01875 [1.] 13.02428571 [1.] 13.03125 [nan] 13.03333333 [nan] 13.0375 [1.] 13.04285714 [1.] 13.04444444 [1.] 13.045 [1.] 13.05 [1.] 13.05375 [nan] 13.05857143 [nan] 13.05875 [1.] 13.0625 [1.] 13.06363636 [1.] 13.06666667 [1.] 13.07142857 [1.] 13.07375 [1.] 13.07571429 [nan] 13.08 [1.] 13.08333333 [nan] 13.08571429 [1.] 13.09090909 [1.] 13.09444444 [nan] 13.1 [ 1. nan] 13.105 [1.] 13.10571429 [1.] 13.11 [1.] 13.11111111 [1.] 13.11625 [1.] 13.11666667 [1.] 13.12222222 [1.] 13.125 [ 1. 0. nan] 13.12555556 [1.] 13.126 [1.] 13.12857143 [nan] 13.1375 [nan] 13.14285714 [1.] 13.15 [1.] 13.15142857 [nan] 13.15428571 [1.] 13.16428571 [0.] 13.16666667 [ 1. 0. nan] 13.18181818 [1.] 13.18333333 [1.] 13.19333333 [1.] 13.2 [ 1. 0. nan] 13.20714286 [1.] 13.2125 [1.] 13.21428571 [1.] 13.21875 [1.] 13.22 [nan] 13.22222222 [1.] 13.225 [nan] 13.2325 [1.] 13.24285714 [1.] 13.24444444 [1.] 13.24875 [nan] 13.25 [ 1. 0. nan] 13.25375 [nan] 13.2575 [1.] 13.25857143 [1.] 13.26666667 [ 1. nan] 13.27625 [1.] 13.28571429 [ 1. nan] 13.29 [1.] 13.29166667 [1.] 13.29444444 [1.] 13.29714286 [1.] 13.3 [ 1. nan] 13.30625 [1.] 13.31 [nan] 13.3125 [ 1. nan] 13.31375 [1.] 13.31428571 [1.] 13.32625 [1.] 13.32714286 [0.] 13.32857143 [1.] 13.33142857 [1.] 13.33333333 [ 1. 0. nan] 13.3425 [nan] 13.345 [1.] 13.3475 [1.] 13.35 [1.] 13.35714286 [nan] 13.3675 [1.] 13.375 [1.] 13.38125 [nan] 13.38142857 [nan] 13.38333333 [1.] 13.385 [nan] 13.3875 [1.] 13.39125 [nan] 13.4 [ 1. 0. nan] 13.40375 [1.] 13.41111111 [1.] 13.41428571 [nan] 13.41625 [1.] 13.41666667 [1.] 13.4173913 [1.] 13.42375 [1.] 13.4275 [nan] 13.42857143 [ 1. nan] 13.435 [nan] 13.44285714 [ 1. nan] 13.45 [1.] 13.45454545 [nan] 13.46153846 [1.] 13.472 [1.] 13.475 [1.] 13.48333333 [1.] 13.48571429 [1.] 13.48714286 [nan] 13.49375 [1.] 13.49666667 [1.] 13.5 [ 1. 0. nan] 13.51285714 [nan] 13.51428571 [1.] 13.51666667 [1.] 13.53333333 [1.] 13.5425 [1.] 13.54285714 [ 1. nan] 13.54444444 [nan] 13.54545455 [1.] 13.55 [ 1. nan] 13.55473684 [1.] 13.55555556 [nan] 13.55714286 [nan] 13.5625 [1.] 13.57142857 [ 1. 0. nan] 13.57625 [1.] 13.58333333 [ 1. nan] 13.58571429 [1.] 13.595 [1.] 13.6 [ 1. 0. nan] 13.61428571 [ 1. nan] 13.61538462 [1.] 13.625 [1.] 13.62777778 [1.] 13.63 [1.] 13.64285714 [1.] 13.65 [1.] 13.65625 [1.] 13.65714286 [1.] 13.661 [1.] 13.6625 [1.] 13.66666667 [ 1. 0. nan] 13.67 [1.] 13.67142857 [nan] 13.68142857 [1.] 13.68333333 [1.] 13.7 [1.] 13.7125 [1.] 13.71428571 [ 1. nan] 13.71666667 [1.] 13.72727273 [nan] 13.73125 [1.] 13.74285714 [1.] 13.74444444 [1.] 13.74625 [1.] 13.75 [ 1. 0. nan] 13.75555556 [1.] 13.76 [1.] 13.76125 [nan] 13.76375 [1.] 13.77142857 [1.] 13.775 [ 1. nan] 13.77777778 [1.] 13.78 [1.] 13.78125 [1.] 13.78888889 [1.] 13.79857143 [1.] 13.8 [ 1. 0. nan] 13.81111111 [1.] 13.81285714 [nan] 13.81375 [1.] 13.81428571 [nan] 13.81714286 [1.] 13.82 [1.] 13.825 [1.] 13.82857143 [1.] 13.83333333 [ 1. nan] 13.8375 [1.] 13.84285714 [1.] 13.85714286 [ 1. nan] 13.86714286 [1.] 13.875 [1.] 13.88125 [1.] 13.8875 [1.] 13.88888889 [1.] 13.9 [1.] 13.90625 [nan] 13.91 [1.] 13.9125 [1.] 13.91666667 [nan] 13.92571429 [1.] 13.92727273 [1.] 13.93714286 [1.] 13.9375 [1.] 13.94444444 [1.] 13.9475 [1.] 13.95714286 [1.] 13.96666667 [ 1. nan] 13.97142857 [1.] 13.98 [nan] 13.98333333 [1.] 13.98375 [nan] 13.99444444 [1.] 14.0 [ 1. 0. nan] 14.01428571 [1.] 14.01666667 [1.] 14.02222222 [nan] 14.02625 [1.] 14.03333333 [nan] 14.035 [1.] 14.0375 [nan] 14.0475 [1.] 14.05142857 [1.] 14.05555556 [nan] 14.06 [1.] 14.0625 [ 1. nan] 14.06666667 [1.] 14.07125 [1.] 14.07142857 [nan] 14.07777778 [nan] 14.08571429 [nan] 14.09090909 [nan] 14.1 [ 1. nan] 14.10625 [1.] 14.11 [1.] 14.11428571 [1.] 14.11571429 [1.] 14.125 [ 1. nan] 14.13714286 [1.] 14.14125 [1.] 14.14285714 [ 1. nan] 14.14444444 [1.] 14.15 [1.] 14.15375 [1.] 14.16666667 [ 1. 0. nan] 14.17857143 [1.] 14.1875 [1.] 14.2 [ 1. 0. nan] 14.2125 [1.] 14.21428571 [1.] 14.22222222 [1.] 14.23076923 [1.] 14.23125 [ 1. nan] 14.23285714 [1.] 14.23333333 [1.] 14.24 [1.] 14.25 [ 1. 0. nan] 14.2525 [1.] 14.25714286 [1.] 14.26666667 [1.] 14.26875 [1.] 14.2725 [1.] 14.28571429 [ 1. 0. nan] 14.28625 [1.] 14.3 [nan] 14.31285714 [1.] 14.31428571 [ 1. nan] 14.31666667 [1.] 14.32857143 [1.] 14.33333333 [ 1. nan] 14.34125 [1.] 14.34285714 [1.] 14.345 [1.] 14.35 [1.] 14.35555556 [nan] 14.35714286 [1.] 14.36 [nan] 14.3625 [1.] 14.36875 [1.] 14.375 [1.] 14.3775 [1.] 14.3875 [ 1. nan] 14.38888889 [1.] 14.4 [ 1. nan] 14.4025 [1.] 14.40285714 [nan] 14.41428571 [1.] 14.42857143 [ 1. nan] 14.4375 [1.] 14.44444444 [1.] 14.445 [1.] 14.44875 [1.] 14.46153846 [1.] 14.4625 [1.] 14.47142857 [1.] 14.4775 [nan] 14.47777778 [1.] 14.5 [ 1. 0. nan] 14.50125 [1.] 14.51111111 [1.] 14.51125 [1.] 14.5125 [1.] 14.51428571 [nan] 14.53333333 [1.] 14.53571429 [1.] 14.53714286 [1.] 14.53846154 [1.] 14.54 [1.] 14.545 [1.] 14.55555556 [1.] 14.56571429 [1.] 14.56666667 [1.] 14.57142857 [ 1. nan] 14.575 [1.] 14.58333333 [1.] 14.58888889 [1.] 14.6 [ 1. nan] 14.61666667 [1.] 14.62222222 [1.] 14.625 [0. 1.] 14.62777778 [1.] 14.63375 [1.] 14.63636364 [nan] 14.65 [1.] 14.65285714 [1.] 14.65428571 [nan] 14.65555556 [nan] 14.6625 [1.] 14.66666667 [ 0. 1. nan] 14.67142857 [1.] 14.6875 [1.] 14.7 [nan] 14.71428571 [ 1. nan] 14.71666667 [1.] 14.71875 [1.] 14.72571429 [nan] 14.73142857 [nan] 14.7375 [1.] 14.75 [ 1. nan] 14.75555556 [1.] 14.75625 [1.] 14.77272727 [1.] 14.775 [1.] 14.78888889 [1.] 14.8 [ 1. 0. nan] 14.80571429 [1.] 14.8125 [1.] 14.81818182 [nan] 14.82857143 [nan] 14.83333333 [ 1. nan] 14.85 [1.] 14.85714286 [ 1. nan] 14.86363636 [1.] 14.86444444 [nan] 14.875 [1.] 14.88181818 [nan] 14.88875 [1.] 14.88888889 [ 1. nan] 14.9 [1.] 14.90142857 [1.] 14.9125 [nan] 14.925 [1.] 14.93333333 [1.] 14.935 [1.] 14.93571429 [nan] 14.95555556 [1.] 14.9625 [1.] 14.96285714 [1.] 14.98333333 [1.] 14.98571429 [1.] 14.99285714 [1.] 15.0 [ 1. 0. nan] 15.01111111 [ 1. nan] 15.0125 [1.] 15.01818182 [1.] 15.02352941 [1.] 15.02857143 [1.] 15.05555556 [1.] 15.0625 [nan] 15.06875 [1.] 15.07 [1.] 15.075 [nan] 15.07571429 [1.] 15.092 [1.] 15.1 [1.] 15.11 [1.] 15.11111111 [1.] 15.11428571 [1.] 15.125 [1.] 15.12777778 [1.] 15.14285714 [ 1. nan] 15.1625 [1.] 15.16666667 [ 1. 0. nan] 15.18888889 [1.] 15.2 [ 1. nan] 15.22857143 [1.] 15.23076923 [1.] 15.25 [1.] 15.28571429 [ 1. nan] 15.2875 [nan] 15.3 [ 1. nan] 15.30769231 [1.] 15.3125 [1.] 15.33333333 [1.] 15.35 [1.] 15.355 [1.] 15.36666667 [1.] 15.3875 [nan] 15.4 [ 1. nan] 15.42857143 [nan] 15.43333333 [1.] 15.5 [ 1. nan] 15.52222222 [1.] 15.55555556 [1.] 15.57 [nan] 15.57142857 [1.] 15.6 [ 0. 1. nan] 15.61111111 [nan] 15.62222222 [1.] 15.625 [1.] 15.63375 [nan] 15.6375 [1.] 15.65714286 [1.] 15.6625 [1.] 15.66666667 [ 1. nan] 15.67571429 [1.] 15.68333333 [1.] 15.7 [1.] 15.7425 [nan] 15.74444444 [1.] 15.75 [ 1. nan] 15.77777778 [1.] 15.79857143 [1.] 15.8 [ 1. nan] 15.8125 [1.] 15.83333333 [1.] 15.85714286 [nan] 15.8625 [1.] 15.875 [1.] 15.88571429 [nan] 15.9 [1.] 15.91111111 [nan] 15.925 [1.] 15.94285714 [1.] 16.0 [ 0. 1. nan] 16.05 [nan] 16.075 [1.] 16.0875 [1.] 16.09375 [1.] 16.14285714 [nan] 16.16888889 [nan] 16.2 [ 1. nan] 16.28571429 [1.] 16.32727273 [1.] 16.33333333 [1.] 16.375 [1.] 16.37777778 [1.] 16.3875 [1.] 16.4 [ 1. nan] 16.42857143 [ 1. nan] 16.5 [ 1. nan] 16.575 [1.] 16.58222222 [1.] 16.6 [1.] 16.66666667 [1.] 16.8 [1.] 16.90909091 [1.] 17.0 [1.] 17.16666667 [1.] 17.42857143 [1.] 17.5875 [1.] 17.6 [1.] 17.69230769 [nan] 17.71428571 [1.] 18.57142857 [1.] **************************************************************************************************** Curricular units 2nd sem (without evaluations) Tuition fees up to date 0 [ 0. 1. nan] 1 [ 1. 0. nan] 2 [ 1. 0. nan] 3 [ 0. 1. nan] 4 [ 0. 1. nan] 5 [ 1. 0. nan] 6 [ 0. 1. nan] 7 [1. 0.] 8 [ 1. 0. nan] 12 [1. 0.] **************************************************************************************************** Unemployment rate Tuition fees up to date 7.6 [ 1. 0. nan] 8.9 [ 1. 0. nan] 9.4 [ 1. 0. nan] 10.8 [ 0. 1. nan] 11.1 [ 1. 0. nan] 12.4 [ 0. 1. nan] 12.7 [ 0. 1. nan] 13.9 [ 1. 0. nan] 15.5 [ 1. 0. nan] 16.2 [ 1. 0. nan] **************************************************************************************************** Inflation rate Tuition fees up to date -0.8 [ 1. 0. nan] -0.3 [ 1. 0. nan] 0.3 [ 1. 0. nan] 0.5 [ 0. 1. nan] 0.6 [ 1. 0. nan] 1.4 [ 0. 1. nan] 2.6 [ 1. 0. nan] 2.8 [ 1. 0. nan] 3.7 [ 0. 1. nan] **************************************************************************************************** GDP Tuition fees up to date -4.06 [ 1. 0. nan] -3.12 [ 1. 0. nan] -1.7 [ 0. 1. nan] -0.92 [ 1. 0. nan] 0.32 [ 1. 0. nan] 0.79 [ 1. 0. nan] 1.74 [ 0. 1. nan] 1.79 [ 0. 1. nan] 2.02 [ 1. 0. nan] 3.51 [ 1. 0. nan] **************************************************************************************************** Target Tuition fees up to date Dropout [ 0. 1. nan] Enrolled [ 1. 0. nan] Graduate [ 1. 0. nan] ****************************************************************************************************
df.head()
| ID | Marital status | Application mode | Application order | Course | Daytime/evening attendance | Previous qualification | Previous qualification (grade) | Nationality | Mother's qualification | Father's qualification | Mother's occupation | Father's occupation | Admission grade | Displaced | Educational special needs | Debtor | Tuition fees up to date | Gender | Scholarship holder | Age at enrollment | International | Curricular units 1st sem (credited) | Curricular units 1st sem (enrolled) | Curricular units 1st sem (evaluations) | Curricular units 1st sem (approved) | Curricular units 1st sem (grade) | Curricular units 1st sem (without evaluations) | Curricular units 2nd sem (credited) | Curricular units 2nd sem (enrolled) | Curricular units 2nd sem (evaluations) | Curricular units 2nd sem (approved) | Curricular units 2nd sem (grade) | Curricular units 2nd sem (without evaluations) | Unemployment rate | Inflation rate | GDP | Target | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 17 | 690 | 4 | 39 | 2 | 9147 | 1 | 19 | 133.1 | 1 | 37 | 37.0 | 9 | 7 | 116.4 | 0 | 0 | 1 | 0.0 | 1 | 0 | 70 | 0 | 0 | 5 | 5 | 0 | 0.000000 | 0 | 0 | 5 | 9 | 0 | 0.000000 | 0 | 10.8 | 1.4 | 1.74 | Dropout |
| 18 | 2960 | 5 | 39 | 1 | 9254 | 1 | 1 | 133.1 | 1 | 2 | 2.0 | 2 | 2 | 103.0 | 0 | 0 | 0 | 1.0 | 0 | 0 | 62 | 0 | 0 | 6 | 7 | 6 | 15.000000 | 0 | 0 | 6 | 10 | 6 | 12.833333 | 0 | 10.8 | 1.4 | 1.74 | Graduate |
| 19 | 950 | 1 | 39 | 1 | 9147 | 1 | 1 | 140.0 | 1 | 37 | 3.0 | 9 | 2 | 135.1 | 0 | 0 | 0 | 1.0 | 1 | 0 | 61 | 0 | 0 | 5 | 0 | 0 | 0.000000 | 0 | 0 | 5 | 0 | 0 | 0.000000 | 0 | 15.5 | 2.8 | -4.06 | Dropout |
| 20 | 708 | 2 | 39 | 1 | 9003 | 1 | 1 | 150.0 | 1 | 37 | 37.0 | 9 | 6 | 140.0 | 0 | 0 | 0 | 1.0 | 1 | 0 | 60 | 0 | 17 | 18 | 18 | 18 | 14.111111 | 0 | 11 | 13 | 13 | 13 | 14.230769 | 0 | 15.5 | 2.8 | -4.06 | Graduate |
| 21 | 2868 | 1 | 39 | 1 | 9003 | 1 | 19 | 133.1 | 1 | 37 | 37.0 | 9 | 9 | 100.0 | 0 | 0 | 0 | 1.0 | 0 | 0 | 60 | 0 | 0 | 6 | 10 | 6 | 12.750000 | 0 | 0 | 6 | 6 | 4 | 14.750000 | 0 | 13.9 | -0.3 | 0.79 | Graduate |
## Pie chart to look at Marital Status distribution
## Why Pie Chart and not some other chart?
## -> Because we have already aware of number of classes in this column which are not many and pie chart is a good visualization
import plotly.graph_objects as go ## for Interactive Visualizations
df_pie_marital_status = df.groupby(by='Marital status')['ID'].count().reset_index()
fig = go.Figure(data=[
go.Pie(labels = df_pie_marital_status['Marital status'],
values = df_pie_marital_status['ID']
)
])
fig.update_traces(hoverinfo='label+value', textinfo='percent', textfont_size=20,
marker=dict(line=dict(color='#000000', width=2)))
fig.update_layout(title = 'Marital Status Distribution amongst students')
fig.show()
fig = px.scatter(df, x = 'Age at enrollment', y='Marital status')
fig.update_layout(title = "Relationship b/w Age and Marital status",
xaxis_title = "Age",
yaxis_title = "Marital status")
## Bar chart to see the popularityy of courses taken
df_bar_course = df.groupby(by='Course')['ID'].count().reset_index()
px.bar(
df_bar_course
, x = 'Course'
, y = 'ID'
)
## Handling the wrong datatype
df.loc[:, 'Course'] = df['Course'].astype('str')
## Bar plot
df_bar_course = df.groupby(by='Course')['ID'].count().reset_index().sort_values(by = 'ID', ascending = False)
df_bar_course.columns = ['Course', 'Count']
fig = px.bar(
df_bar_course
, x = 'Course'
, y = 'Count'
)
fig.update_layout(title = "Course by Popularity",
xaxis_title = "Course",
yaxis_title = "Number of students who have taken this course")
fig.show()
## Pie chart to look at Attendence distribution
## Why Pie Chart and not some other chart?
## -> Because we are already aware of number of classes in this column which are not many and pie chart is a good visualization
df_pie_attendence = df.groupby(by='Daytime/evening attendance')['ID'].count().reset_index()
fig = go.Figure(data=[
go.Pie(labels = df_pie_attendence['Daytime/evening attendance'],
values = df_pie_attendence['ID']
)
])
fig.update_traces(hoverinfo='label+value', textinfo='percent', textfont_size=20,
marker=dict(line=dict(color='#000000', width=2)))
fig.update_layout(title = 'Daytime/evening attendance Distribution amongst students')
fig.show()
Observation
In most likelihood, class 1 represents students from daytime classes(assumption)
## Compare distribution of nationality with domestic/international students distribution
## Making Subplots
from plotly.subplots import make_subplots ## To Plot Subplots
fig = make_subplots(
rows = 1
, cols = 2
, subplot_titles = ['Nationality Distribution', 'Student Distribution - (Domestic/International)']
, specs=[[{"type": "bar"}, {"type": "pie"}]]
)
## Visualization for Nationality Distribution
df_bar_nationality = df.groupby(by='Nationality')['ID'].count().reset_index()
df_bar_nationality.columns = ['Nationality', 'Count']
## Adding visualization as a subplpot
fig.add_trace(
go.Bar(name="Nationality Distribution"
, x = df_bar_nationality['Nationality']
, y = df_bar_nationality['Count'])
, row = 1
, col = 1
)
## Visualization for Domestic/International Distribution
df_pie_international = df.groupby(by='International')['ID'].count().reset_index()
df_pie_international.columns = ['International', 'Count']
## Adding visualization as a subplpot
fig.add_trace(
go.Pie(
labels = df_pie_international['International']
, values = df_pie_international['Count']
, name = 'Domestic/International Distribution'
)
, row = 1
, col = 2
)
fig.update_layout(title = 'Distribution of nationality with domestic/international students distribution')
fig.update_xaxes(title_text="Nationality", row=1, col=1)
fig.update_yaxes(title_text="Count", row=1, col=1)
fig.show()
## Handing data inconsistancy for Nationality
df.loc[:, 'Nationality'] = df['Nationality'].astype('str')
## Making Subplots
fig = make_subplots(
rows = 1
, cols = 2
, subplot_titles = ['Nationality Distribution', 'Student Distribution - (Domestic/International)']
, specs=[[{"type": "bar"}, {"type": "pie"}]]
)
## Visualization for Nationality Distribution
df_bar_nationality = df.groupby(by='Nationality')['ID'].count().reset_index().sort_values(by = 'ID', ascending = False)
df_bar_nationality.columns = ['Nationality', 'Count']
## Adding visualization as a subplpot
fig.add_trace(
go.Bar(name="Nationality Distribution"
, x = df_bar_nationality['Nationality']
, y = df_bar_nationality['Count'])
, row = 1
, col = 1
)
## Visualization for Domestic/International Distribution
df_pie_international = df.groupby(by='International')['ID'].count().reset_index()
df_pie_international.columns = ['International', 'Count']
## Adding visualization as a subplpot
fig.add_trace(
go.Pie(
labels = df_pie_international['International']
, values = df_pie_international['Count']
, name = 'Domestic/International Distribution'
, hole = 0.5
, marker=dict(
colors=[ "#70C1B3", "#79b159"]
, line=dict(color='#000000', width=2)
)
)
, row = 1
, col = 2
)
fig.update_layout(title = 'Distribution of nationality with domestic/international students distribution')
fig.update_xaxes(title_text="Nationality", row=1, col=1)
fig.update_yaxes(title_text="Count", row=1, col=1)
fig.show()
## Visualize data distribution for the following attributes: Displaced, Educational special needs, Debtor, Scholarship holder
## Visualization Library built on top of matplotlib
import seaborn as sns
## defining Seaborn color palette to use
colors = sns.color_palette('pastel')
## Making subplots
fig = plt.figure(figsize=(18,10), dpi=1600)
## Distribution for 'Displaced' Attribute
df_pie_Displaced = df.groupby(by='Displaced')['ID'].count().reset_index().sort_values(by = 'ID', ascending = False)
df_pie_Displaced.columns = ['Displaced', 'Count']
## Adding visualization as a subplpot
ax1 = plt.subplot2grid((2,2),(0,0)) ## Row1 Col1
plt.pie(x = df_pie_Displaced['Count'], labels = df_pie_Displaced['Displaced'], colors = colors[:2], autopct='%.0f%%')
plt.title('Displaced Distribution')
## Distribution for 'Educational special needs' Attribute and Adding visualization as a subplpot
df_pie_Special_Needs = df.groupby(by='Educational special needs')['ID'].count().reset_index().sort_values(by = 'ID', ascending = False)
df_pie_Special_Needs.columns = ['Educational special needs', 'Count']
ax1 = plt.subplot2grid((2,2),(0,1)) ## Row1 Col2
plt.pie(x = df_pie_Special_Needs['Count'], labels = df_pie_Special_Needs['Educational special needs'], colors = colors[2:4], autopct='%.0f%%')
plt.title('Educational special needs Distribution')
## Distribution for 'Debtor' Attribute and Adding visualization as a subplpot
df_pie_Debtor = df.groupby(by='Debtor')['ID'].count().reset_index().sort_values(by = 'ID', ascending = False)
df_pie_Debtor.columns = ['Debtor', 'Count']
ax1 = plt.subplot2grid((2,2),(1,0)) ## Row2 Col1
plt.pie(x = df_pie_Debtor['Count'], labels = df_pie_Debtor['Debtor'], colors = colors[4:6], autopct='%.0f%%')
plt.title('Debtor Distribution')
## Distribution for 'Scholarship holder' Attribute and Adding visualization as a subplpot
df_pie_Scholarship = df.groupby(by='Scholarship holder')['ID'].count().reset_index().sort_values(by = 'ID', ascending = False)
df_pie_Scholarship.columns = ['Scholarship holder', 'Count']
ax1 = plt.subplot2grid((2,2),(1,1)) ## Row2 Col2
plt.pie(x = df_pie_Scholarship['Count'], labels = df_pie_Scholarship['Scholarship holder'], colors = colors[6:8], autopct='%.0f%%')
plt.title('Scholarship holder Distribution')
## Updting figure title
fig.suptitle('Data Distribution in different attributes')
plt.show()
## Visualize data distribution for Gender and Target Attributes
## Making subplots
fig = plt.figure(figsize=(18,6), dpi=1600)
## Distribution for 'Gender' Attribute and Adding visualization as a subplpot
df_pie_Gender = df.groupby(by='Gender')['ID'].count().reset_index().sort_values(by = 'ID', ascending = False)
df_pie_Gender.columns = ['Gender', 'Count']
ax1 = plt.subplot2grid((1,2),(0,0)) ## Row1 Col1
plt.pie(x = df_pie_Gender['Count'], labels = df_pie_Gender['Gender'], colors = colors[:2], autopct='%.0f%%')
plt.title('Gender Distribution')
## Distribution for 'Target' Attribute and Adding visualization as a subplpot
df_pie_Target = df.groupby(by='Target')['ID'].count().reset_index().sort_values(by = 'ID', ascending = False)
df_pie_Target.columns = ['Target', 'Count']
ax1 = plt.subplot2grid((1,2),(0,1)) ## Row1 Col2
plt.pie(x = df_pie_Target['Count'], labels = df_pie_Target['Target'], colors = colors[2:], autopct='%.0f%%')
plt.title('Target Distribution')
## Updting figure title
fig.suptitle('Data Distribution in Gender and Target attributes')
plt.show()
df_Nationality_metrics = df.groupby('Nationality')[['Unemployment rate', 'Inflation rate', 'GDP']].mean().reset_index().sort_values(by='GDP', ascending = False)
fig = go.Figure()
## GDP Visualization
fig.add_trace(
go.Bar(
x=df_Nationality_metrics['Nationality']
, y=df_Nationality_metrics['GDP']
, name='GDP'
)
)
## Inflation rate Visualization
fig.add_trace(
go.Bar(
x=df_Nationality_metrics['Nationality']
, y=df_Nationality_metrics['Inflation rate']
, name='Inflation rate'
)
)
## Unemployment rate Visualization
fig.add_trace(
go.Bar(
x=df_Nationality_metrics['Nationality']
, y=df_Nationality_metrics['Unemployment rate']
, name='Unemployment rate'
)
)
# Here we modify the tickangle of the xaxis, resulting in rotated labels.
fig.update_layout(barmode='group', xaxis_tickangle=-45, title = "GDP, Inflation rate and Unemployment by country")
fig.show()
## Relationship between (GDP - Unemployment Rate) and (GDP - Inflation Rate) and (Inflation Rate - Unemployment Rate)
fig = px.scatter_matrix(df_Nationality_metrics.drop('Nationality', axis = 1))
fig.update_traces(
diagonal_visible=False
, marker=dict(size=1, line=dict(width=1, color="DarkSlateGrey"))
)
fig.update_layout(
title = 'Relationship between GDP, Unemployment Rate and Inflation Rate'
)
## Descriptive Statistic : Correlation Metrix
bold = '\033[1m'
end = '\033[0m'
print(bold, df_Nationality_metrics.corr(), end)
fig.show()
Unemployment rate Inflation rate GDP
Unemployment rate 1.000000 0.051397 -0.702510
Inflation rate 0.051397 1.000000 -0.437959
GDP -0.702510 -0.437959 1.000000
## Data Distribution of Age atttribute by Genders
fig = px.histogram(df, x='Age at enrollment', color='Gender',
barmode = 'overlay', nbins=50, marginal = 'box', color_discrete_sequence = ["#79B159", "#FFB482"])
fig.update_layout(title = "Age distribution by Gender.",
xaxis_title = "Age",
yaxis_title = "No of students")
fig.show()
## Scatterplot is a good visualization to see the trend and relationship between grades of two semester
fig = px.scatter(
x = df['Curricular units 1st sem (grade)']
, y = df['Curricular units 2nd sem (grade)']
, color_discrete_sequence = ["#79b159"]
, hover_name = df['ID']
)
fig.update_layout(title = "Relationship between 1st sem grades and 2nd sem grades",
xaxis_title = "First Sem Grades",
yaxis_title = "Second Sem Grades")
print(
"Descriptive Statistics: Correlation between 1st sem grades and 2nd sem grades: "
, bold
, df.corr().loc['Curricular units 1st sem (grade)', 'Curricular units 2nd sem (grade)']
, end
)
fig.show()
Descriptive Statistics: Correlation between 1st sem grades and 2nd sem grades: 0.8381597266089426
fig = px.scatter_matrix(df.loc[:, ['Previous qualification (grade)', 'Curricular units 1st sem (grade)', 'Curricular units 2nd sem (grade)']])
fig.update_traces(
diagonal_visible=False
, marker=dict(size=1, line=dict(width=1, color="DarkSlateGrey"))
)
fig.update_layout(
title = 'Relationship between grades'
, font_size = 7
)
print(
bold
, "Descriptive Statistics Correlation among grades:"
, end
, '\n'
, df.loc[:, ['Previous qualification (grade)', 'Curricular units 1st sem (grade)', 'Curricular units 2nd sem (grade)']].corr()[['Previous qualification (grade)']]
)
fig.show()
Descriptive Statistics Correlation among grades:
Previous qualification (grade)
Previous qualification (grade) 1.000000
Curricular units 1st sem (grade) 0.061213
Curricular units 2nd sem (grade) 0.055099
six_grid_cols = ['Unemployment rate', 'Inflation rate', 'GDP', 'Previous qualification (grade)', 'Curricular units 1st sem (grade)', 'Curricular units 2nd sem (grade)']
fig = px.scatter_matrix(df.loc[:, six_grid_cols])
fig.update_traces(
diagonal_visible=False
, marker=dict(size=1, line=dict(width=1, color="DarkSlateGrey"))
)
fig.update_layout(
title = 'Relationship between numerical attributes.'
, font_size = 7
) ## should read country attributes seperately and student performance attributes seperately
fig.show()
corr_six_grid = df.loc[:, six_grid_cols].corr()
px.imshow(corr_six_grid, color_continuous_scale = 'twilight')